Added ability to pass in Lucene Sort object

Created an overload for both RunQuery and GetItems to allow the passing
in of a Lucene Sort object to add some flexibility
Changed the List objects to IEnumerables

Changing to IEnumerables reduces some superfluous method calls to create
the refinements/ranges. For example, keywords.Select(x =>
x.ID.ToString()) instead of keywords.Select(x =>
x.ID.ToString()).ToList()
Merge branch 'refs/heads/type-relaxing'
Updated versions
Merge pull request #1 from andrewburgess/master

Catching up with changes made by me