Refactor sorts to inherit functionality from a base class.

This cleans up a lot of code and makes adding basic "all search" functionality
a lot easier.
Allow script/geo sorts to have NestedFilter and NestedPath

This is allowed by ElasticSearch as well. All sorts can have
a NestedFilter and NestedPath
Merge different work on Sorts together