Embedded Model Fixes

**Ready to merge**

Cleans up some things with embedded models:

1. Defaults embedded based on whether the property name ends in "_uri"
2. Supports naming the computed embedded property the same as the actual JSON value, so we don't have to do serialize/deserialize tricks
3. Moves serialization into an instance method so you can call up the inheritance tree, rather than completely overriding your parent class