namespace: Extracted keyword finding logic to a separate class.

The idea of this refactoring was to split keyword finding logic away
from way too long and pretty horrible `Namespace` class.  The main
motivated was to ease adding new features (e.g. #888) and fixes
(e.g. #1771) to the keyword finding logic. New `KeywordStore` is still
too closely coupled with `Namespace`, but didn't want to do much
bigger changes in a minor release.

@guykisel, any comments about the changes are appreciated. It seems to
me that the approach I used was very similar to what you have done in
your fork to implement #1771.
Merge commit '6bb18a81bdf80b7ed87ebe4a3e2543e4a0967d1c' into fuzzy-keyword-matching

Conflicts:
	src/robot/libraries/BuiltIn.py
	src/robot/running/namespace.py