Don't keep the full parent record in assocations

For has_many we need the primary key of the parent for the Queryable
implementation.
Closes #69.
Improve error messages for association primary keys

Closes #66.
Fix build
Move primary key nil check for has_many to correct place
Fix HasMany/HasOne.new and add tests
Split up __ecto__ functions

Closes #65.
Improve join query expression API

Qualifier is not optional anymore to reduce confusion.
Closes #72.
Format InvalidQuery nicer

Closes #56.
Set type to text for string literals in SQL

"SELECT 'abc'" => "SELECT 'abc'::text".
Postgres sees string literals as "unknown" type unless type is explicitly
set. The driver returns `{ :unknown, "abc" }` for the above code before
this fix.
Add integration tests for SQL escaping

Closes #22.
Add field/2 query helper

First argument is a query variable, second variable is an outside
elixir expression that should evaluate to an atom. It will translate
to a query field. This allows us to create dynamic queries while still
using the query syntax.

Example:
x = :title; from(p in Post, select: field(p, x))
  #=> from(p in Post, select: p.title)
Require ^ in second argument of field/2
Implement Inspect for associations

Closes #70.
Rename ValidationError => InvalidEntity

Closes #64.
Fix warnings
Fix options on has_many and has_one associations

:primary_key and :foreign_key options were ignored.
Closes #75.
Fix :primary_key option field mismatch error