Further refactoring; move methods around.

- Pulled `useCanonical` int the AbstractWordRequest class.
- Made sure that implementations don't forget to implement
  `generateRequestTarget`.
- Updated `DefinitionsRequest` for refactoring changes.
Move test for WordRequest class.
Add getter/setter for Client instance.
Refactor to abstract class.

Pulled some methods out from the WordRequest class, into the parent
abstract class. Moved the associated unit tests as well.
Implement word:definitions request.