Move Generic and HList to a separate sub project to limit dependencies