Prevent object type from being skipped during deserialization

This PR addresses the issue pointed out here: http://stackoverflow.com/questions/24557919/nest-ignoring-complex-properties-when-retrieving-mappings?noredirect=1#comment38054528_24557919

Object type mappings do not contain a `type` property and thus were getting skipped during deserialization.  I've verified this in ES all the way back to 0.90.13.  We can get around this by checking for `properties` (which all objects will have) if `type` is missing.