Improved Suggest Client API

- Added `SuggestBuilders` (analogous to `QueryBuilders`)
 - supporting `term`, `phrase`, `completion` and `fuzzyCompletion` suggestion builders
- Added `suggest(SuggestionBuilder)` to `SuggestRequest`
   - previously only `suggest(BytesReference)` was supported
- Use new `SuggestBuilders` methods in tests, instead of directly instantiating specific suggestion builder.

closes #7435
can we have javadocs for these methods? I think it's important for our public APIs that are directly userfacing