Named relationships

Support for named relationships, passing a vector optionally with name and entity instead of only the entity. This will also allow more than one relationship between two entities. e.g.

(defentity users
  (belongs-to [:book books]))

(select users
  (with :book))

(select users
  (join :book))