Bug fix: MultiSearch was returning derived types as base type (as specified in generic)

Applied patch https://github.com/Mpdreamz/NEST/commit/c48f9477e0698d9d46499793c43be96c46ec0e11.patch via https://github.com/Mpdreamz/NEST/pull/352
Merge remote-tracking branch 'upstream/master'

Conflicts:
	src/Nest/Resolvers/Converters/MultiSearchConverter.cs
Relaxed type constraint on Document method for UpdateDescriptor so that any partial document may be supplied for upsert
Added a comment for the Upsert method to clarify its usage
Updated BulkUpdateDescriptor with same changes as UpdateDescriptor
Changed Document type from object to K parameter
Changed Upsert() in Bulk/UpdateDescriptor parameter to take an object of type T and not K, as Upsert() represents the (full) document to insert if an existing document does not exist
CustomAnalyzer ctor to set AnalyzerBase.Type

By providing a ctor that sets the Type property users will not need to remember
to set the type property manually.

Removing the default ctor would be a breaking change.  Marking it obsolete
should lead most people to "the pit of success".
Merge pull request #430 from 121cast/any-partial-doc

Allow any object type to be used for a partial update during upsert
fix #434 added support for execution_hint on the terms facet
support dictionary key evaluation
Merge pull request #440 from azubanov/master

support dictionary key evaluation
Remove obsolete attribute
Merge pull request #431 from sschlesier/CustomAnalyzer-ctor

CustomAnalyzer ctor to set AnalyzerBase.Type
Renamed QueryString to Query on the MatchQueryDescriptor
Merge pull request #444 from gmarz/master

Renamed QueryString to Query on the MatchQueryDescriptor
Renamed QueryString to Query on the MultiMatchQueryDescriptor
Merge pull request #445 from gmarz/master

Renamed QueryString to Query on the MultiMatchQueryDescriptor
Renamed QueryString to Query on the TextQueryDescriptor
Merge pull request #446 from gmarz/master

Renamed QueryString to Query on the TextQueryDescriptor