Epic refactor.

Splitting out into more re-usable parts.
Merge branch 'master' of github.com:jhugman/overidify
Moved most of the functionality to strings-with-facets module.