JakeGinnivan/WebApi.Hal — pull request #48 by wis3guy (2014-03-18 13:17:01+00:00)
Title: Added minimal curies support

Modified the ```Link``` class so that it now has a factory method for creating a curies link. It also has the related validation and a convenience property for testing curies validity ```IsCuries```. This required adding the ```Link.Name``` property. (http://tools.ietf.org/html/draft-kelly-json-hal-06#section-8.2)

Proceeded to add more properties to the ```Link``` class in order to make it comply with Link Objects in the HAL spec. (http://tools.ietf.org/html/draft-kelly-json-hal-06#section-5)

Despite these changes, a developer will still need to manually add the curies to the root ```Representation```. So far, i haven't been able to come up with a mechanism where this would be an automated action. Identified obstacles:
* There is currently no 'central place' for links (curies are just links), other than the recommended static ```Linktemplates``` class. As a result, a representation cannot, upon serialization, 'know' what curies to add.
* The HAL spec states that curies may only be added to the root resource object.This is something that can only be determined by using reflection, as one ```Representation``` may have a property that is in turn another ```Representation```.

NOTE: Visual Studio has made some changes to the project files that are unrelated. I could not roll these changes back entirely because i have also added a ```LinkTests``` class to the tests project which demonstrates the added curies functionality.