Hale Link Object Data support Part 1

Supports Hale Link Object Data, but still missing constraints.

```
5.1. Data Properties
5.1.1. type
The "type" property is OPTIONAL.
Specifies the expected type of the data. Servers MAY provide type information in the format: primitive_type{:data_type}, where the primitive_type is a down-cased JSON primitive and the data_type is OPTIONAL. Clients should at least recognize data_type values associated with data-related
HTML 5 "input" element control types.
Default value is "string" if unspecified.
5.1.2. data
The "data" property is OPTIONAL.
Specifying a "data" property supports recursively defining data properties of objects as data values.
5.1.3. scope
The "scope" property is OPTIONAL.
--- href means the data object applies to the query string templated in href.
--- either means POST and the query string.
Specifies the scope of the Data Object. Servers MAY specify "href" or "either".
If a Link Object is templated and no Data Object with a property for the template variable name exists, a client should assume there are no constraints associated with the URI template variable.
Specifying "href" indicates the object only applies to URI template variables. 
Specifying the value "either" indicates the object applies to either a URI template variable of the same name and that a body property SHOULD be supplied according to the properties of the object.
If unspecified, the Data Object specifies information about property values to be submitted as part of the request body.
5.1.4. profile
The "profile" property is OPTIONAL.
Its value is a string which is a URI that hints about the profile (as defined by I-D.wilde-profile-link) of the related resource.
5.1.5. value
The "value" property is OPTIONAL.
Specifies the current or default value.
```

@mdsol/hypermedia-team Please review and merge.