SMModelObject is a very handy superclass for "Model Object" types.
Much, much credit given to André Pang and his phenomenal RMModelObject which was the inspiration for this class. https://github.com/andrep/RMModelObject
More information in the blog post: http://nfarina.com/post/2061838727/smmodelobject
This branch supports (and requires) Automatic Reference Counting (ARC)