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
Document Entity using options
Initial migrations support
Merge pull request #77 from 0xAX/migrations

Initial migrations support
Preload should work with assoc
Fix comments and rename migrations module
Merge pull request #79 from grjohan/fix-migrations

Fix docs and rename migratable module
Move migratable to ecto/adapter directory
Update README.md