Small indexes fixes
Added validates_uniqueness_of

Closes #33
Prevent index names to conflict with field names
Using compound and lambda indexes implicitely
Fix order_by test
Procs can be used in order_by()
order_by() uses indexes when it can
Added a global database selector wrapper for multi-tenancy
indexed fields can accept a multi option
Added the dependent option to the has_many relation

Also changing all the update/destroy/delete methods on criteria to be
update_all/destroy_all/delete_all
store_in() for models to specify a database, or a table name
Prevent index creation on primary key
Quick refactoring
Refactored where() to build an AST and always use indexes when possible
Fix bug with find() which was using a scope
Refactoring relations
Enforce valid options on field, belongs_to, has_many
A few more relation tests
table -> rql_table, also making private stuff private in criteria
Added caching to criteria