Raise exception Bad_option for unparseable or invalid options.

Fix for issue #56.
I think it's fine to catch this from `String.get` -- if you compile with `-unsafe` then all bets are off with respect to type safety anyway.  It's probably worth defining a new exception at some point, but `Invalid_argument` is what is currently raised and hard to revise now without a lot of auditing of the other cstruct users.