Refactor and updates for attribute mappings

 - Refactored UpdateParams, pulled mapping out into extension method as it was easier to use
 - Ensured cyclic graph traversals are not attempted when reading attributes
 - Add a property on the attribute to mark the aggregate root
 - Added tests around Fluent mapping scheme configurations