Routing, parent, type, size, source and analyzer are optional in MappingsOptions

My last pull request was wrong. Newly added MappingsOptions fields should be pointers so they are not included in JSON definition if they are not initialized. This change is compatible with old code because IdOptions and TimestampOptions are not converted to pointers.
My bad I didn't fully test the code before submitting previous pull request.

This is a critical update, because current version is creating wrong mappings: Routing, parent, type, size and analyzer field have default values for their types which is wrong.