MultiField Mapping via AttributesMultiField Mapping via Attributes

Requested from: https://github.com/elasticsearch/elasticsearch-net/issues/810

* *Multi Field Mapping via Attributes*
* Allows for multiple attributes per property and writes them as a CURL command for sending mapping to ElasticSearch
* Setup ElasticPropertyAttribute to allow multiple attributes and created new MultiFieldProperyName to name each multi-field so ES can use by name
* Updated PropertyNameResolver.Property() to be an IEnumerable<> list as opposed to a single IElasticPropertyAttribute (updated associated references to first check if null then if item(s) exist. this was decided to be better than returning an empty list for memory reasons since most properties might not have any attributes)
* TypeMappingWriter checks for multiple attributes. If a single attribute is available, it outputs the mapping like normal, otherwise the method loops through all attributes and defines as a multi_field.
* TypeMappingWriter also now abstracts the core writing logic into its method for reuse between single attribute and multiple attributes.
* PropertyNameResolverTests - Test that multi-field mapping works
* Unit Test for Multiple Attributes & Fix for JsonIgnore Attribute