Add RamUsageEstimator#sizeOf(Object) to forbidden APIs

This method can be a performance trap since it traverse the
entire object tree that is referenced by the provided object.
See LUCENE-5373
Added `fields` support to `geo_point` and `completion` field type.

Upgrading 0.90.x `multi_field` type that has a `geo_point` or `completion` field type as default field would otherwise fail.
Also it make sense to support these field types, because both support specifying the actual values as string.
Parent / child queries should work with non-default similarities
[TEST] Added check that yaml REST test suites always end with \n

Our yaml parser seems to be too tolerant in some cases, e.g. it properly parses yaml suites when they don't end with a line feed, whereas other clients tests break due to that. We should try to do the same to keep consistency across runners.
Added exception if passed an invalid type param
Closes #4964
[TEST] Added ability to test apis that don't return json

The last response body gets now always stashed in the REST tests and can be retrieved via `$body`. This implies that not only expected values can be retrieved from the stashed values, but actual values as well.

Added support for regular expressions to `match` assertion, using `Pattern.COMMENTS` flag for better readability through new custom hamcrest matcher (adopted in do section as well). Functionality added through new feature called `regex` that needs to be mentioned in the skip sections whenever needed till all the runners support it.

Added also example tests for cat count api
Added tests for match/multimatch queries with invalid “type” JSON param
Added dedicated test for MultiMatchQuery