Raise exception Bad_option for unparseable or invalid options.

Fix for issue #56.
I also do [use](https://github.com/dbuenzli/uutf/blob/master/src/uutf.ml#L14) `String.unsafe_get` in codecs but I'm always reluctant in doing so as it's not user overridable except by changing the sources. In some sense we'd like to have the converse of what we have now, i.e., a `safe` option that turns any `String.unsafe_get` into safe calls.