Updated to use macros

1. Added s_mach.codetools library for macro support
2. Added DataDiffMacroBuilder(Impl) and mkDataDiff for creating DataDiff impls for case classes, tuple types and other classes that support struct types
3. Added tests for DataDiffMacroBuilder
4. Updated tuple implicits to use macros instead of code gen
5. Updated TestData to use mkDataDiff macro
6. Updated TestData to use two different types instead of just String
7. Updated tests
work on readme [skip ci]
update readme [skip ci]
Merge branch 'master' of github.com:S-Mach/s_mach.datadiff