ORM to Slick Draft, needs polishing

review by @szeiger 

Please already review this. I keep polishing it as we go a long.
> On the flip side, since this case class does not exactly map what has been loaded by a query you may have to handle None cases in situations where you actually loaded things. What should you do in such situations? Throw an exception telling that this situation should not happen? Use the .get method of Option? None of these solutions is satisfactory…

I see what you mean. And indeed you loose information about if the related object was loaded on the type-level. From the Option you cannot statically tell if it was loaded or not. I didn't see that, thank you for the explanation. I think, I'll the remove the below example and replace it with a summary of what you pointed out. Thanks.

> That being said, I understand that this can be a pragmatic solution to a real problem (avoiding both the necessity for defining a type for each query and the use of less meaningful types like tuples).

Actually I think tuples or case classes are a just fine and not less pragmatic. Correctness wins.