Update `Option.toString()` to not blow up when the value is a `Map`

@jw found a bug! Fixed it...kind of.

This updates the `Option.toString()` so that it can handle a `Map` without blowing up.

The Right Thing™ to do here is to actually serialize correctly, but I'm not familiar enough right now with the proto spec to know what it's supposed to be, or what maps of maps look like.

Anyways, for my other project, we don't actually use options, so this fixes that :grin: