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

...etter support Options
So this has an issue with an empty case class I believe, but I think we should as most of this code does in the bodies presume we are dealing with a case class -- some of these methods may just throw for non-case classes beyond our code... what you ran into before -- though that was a reduce maybe. We need to fix the upfront tests I think