Add failing test for Nullable<int> support
Major refactor. Fixes, IFlattener and performance

- public IFlattener interface is now exposed to allow external code to
flatten object hierarchies
- Significant performance improvements especially for highly nested
objects.
- Fix Nullable<> handling and other members that were previously skipped
Update README and public interface