Aggregated Gentests

-Use aggregation to break gentests into smaller parts.
-Updated sbt build script to reduce code duplication.
-Updated travis script to build and run gentests part by part by matrix.