HLists for Slick

Add a custom HList implementation with a corresponding Shape, and simplify the handling of custom Shapes a bit.

Review by @cvogt