Split project for macro compilation & refactor

1. Added Result[A] for results that can fail multiple errors
or succeed with warnings
2. Refactored for Result[A]
3. Moved ReflectPrint and macro gen to codetools-core
4. Modified build.sbt with new project structure