Fixing hale serializer

@fosrias @miwest929 @sheavalentine-mdsol Please review and merge.
PR to support cardinality attribute. Refactored HALE serializer to support it. Refactored documentation. 
Also, let me know if spec for complex objects is necessary.
I have some concerns about "type: object" being implied by default if no field_type is specified, which is the case for complex objects, e.g.

```yaml
create:
  data:
    - href: drd
  rt: drd
```
Block can be simplified to:
```ruby
hale_opts = if options.external?
   { "#{transition_semantic.name}_options.options" => {} }
elsif options.enumerable?
   { :options => options.each { |k, v| {k => v} } }
else
   {}
end
```