Throw exception on invalid type

If you at some point add a value to a query builder that is an object it can be pretty hard to trace down. Currently you get `strtolower() expects parameter 1 to be string, object given`. This improves slightly by adding the name of the class.

I had this problem when I thought I was adding a query expression as a select, but turns out it wasn't.