Extract DictionaryFactory

 * Adds in a default locale if we don't have a dictionary for the current loacle
 * Moves Locael handling code to LocaleUtils

fixes #14
fixes #8