Fix bug with inline and array bools

The fix from before resulted in a bug with array and inline
bool queries. This fix introduces normalizeFuncArgs(), which
handles the conversion of func args (single, array or inline)
into a unified array which the child method can then
operate on
Add paramsToArray()

This method take an array of parameters, checks if they
they are set in the $this->param list and returns a composed
array.

This will be used for all components so that defaults do
not need to be set, and so that null is not passed in
request bodies to ES.

Related to #30
Better docblocks
Refactor to use paramsToArray()
Typo in test
Refactor Boosting with static methods
Refactor ConstantScore with static methods
Refactor CustomBoostFactor with static methods
Fix bug with array/inline bool filters
Fixed a argument in Readme that would state "to()" instead of "size()"
Refactor CustomFiltersScore with static methods
Refactor CustomScore with static methods
Refactor DisMax with static methods
Rename paramsToArray to convertParams

More descriptive o the actual purpose
Refactor QueryString to use static methods
Refactor Field to use static methods

Modified to extend QueryString so as to reuse code
Refactor FilteredQuery to use static methods
Refactor Fuzzy to use static methods
Refactor FuzzyLikeThis to use static methods
Refactor FuzzyLikeThis methods into base abstract class

FuzzyLikeThisField uses most of the same methods but
cannot directly extend FuzzyLikeThis.  A base abstract
class will allow more code reuse