Languages.hs cleanup

Continuing with @aspidites work in #256, I fixed some inconsistencies with \case usage (in fact, all cases are using \case), switched all English translations to be the default to make adding new languages easier (as you now only have to add ```-- TRANSLATION NEEDED```), moved the translator data & lookup to Data.Map.Lazy instead of manually ordered lists, and (most exciting for me) switched all the ```foo p' = let p = bt p' in ...``` to the much cleaner [view pattern](http://www.haskell.org/ghc/docs/latest/html/users_guide/syntax-extns.html#view-patterns) ```foo (bt -> p) = ...```. I made it the last commit in case you didn't want the extra extension, but I don't see ViewPatterns as causing any issues.