Added support for abstract types in SPOD

Uses the underlying type as the actual storage mechanism.

I've found having this functionality is nice for more domain specific problems such as storing Strings that should be escaped before being displayed.