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
generate dispatch into raw client, and base descriptors that deal with querystring parameters
scanning for known descriptors
Rework of IElasticClient underway, pipeline changes are ready now have to go past all the methods and rewrite them. Validate() and Update() are done
UpdateSettings converted and wrote tests for it, still need to map analysis
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
finished UpdateSettings()
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
started converting search to use the rawdispatch
fix #434 added support for execution_hint on the terms facet
Merge pull request #440 from azubanov/master

support dictionary key evaluation
converted optimize, snapshot, open and close index
to the new rawdispatch routine
Remove obsolete attribute
Merge pull request #431 from sschlesier/CustomAnalyzer-ctor

CustomAnalyzer ctor to set AnalyzerBase.Type