Add LocaleSerializer.

For deserialization by default (and if available) the static
`Locale.getInstance(String, String, String)` is used via reflection
to make use of the Locale cache. If Locale.getInstance is not available
it just falls back to the constructor.

If the `Locale(String, String, String)` constructor should be used in any case
the `LocaleSerializer(boolean)` has to be used with `useReflection`
set to `false`.