Don't expose the UAConfig in the API & load it via file-embed.

A UAConfig really is an implementation detail which users should not
have to worry about. So this patch simplifies the API by loading the
UAConfig internally.

Also, instead of loading the file dynamically, it's embedded in the
library which makes it easier to deploy executables which use this
library.

These simplifications also enable to get rid of the Web.UAParser.Core
module which again simplifies the API.
Don't throw UnicodeExceptions on Unicode decoding errors

Represent them as parse failures (Nothing) instead.
Use the standard "msum" instead of "foldr mplus Nothing"
Nice alignment and clearer haddocks
Adapt testsuite to API changes
Bump Haskell version
Add contributors to haskell port