Keyword not found recommendations

For issue #888.
Great to hear you are still having fun. In that case you might want to go with this kind of a solution (again untested):

```python
def find_recommendations(self, name):
    candidates = self._get_candidates(use_full_name='.' in name)
    name = self._normalize(name)
    return self._get_close_matches(name, candidates)

def _get_candidates(self, use_full_name):
    candidates = {}
    for owner, name in self._get_all_handler_names():
        full_name = '%s.%s' % (owner, name) if owner else name
        key = self._normalize(full_name if use_full_name else name)
        candidates.setdefault(key, []).append(full_name)
    return candidates
```

The above would then require some changes to `_get_close_matches`. It doesn't need to normalize values anymore, nor create a mapping between normalized and full names because it gets it as an argument. It would need to combine full names of the matches returned by difflib, though. Similar approach as in `_find_recommendations_using_short_name` in my previous example ought to work.