lots of performance improvements

1) streaming json instead of creating maps and lists
2) cached reflection logic
3) created the ability to write custom Property objects -- value resolvers per object that yoga knows about
4) moved around the way URI creation happens so that it can leverage #3 and also be a bit more performant