Refactor around the macro definitions into 3 files. Both converter and s...

...etter support Options
shouldn't we check for `!inOption` here? I think `Option[Option[Int]]` does not make sense. `Option[Primitive]` or `Option[CaseClass]` works though. The problem with `Option[Option[Int]]` is that null is ambiguous: was it `None` or `Some(None)`?