Revert from FMDB queue to db, use semaphors for multi-thread support.

FMDB Queues did not provide the required visibility to handle transactions whiel other threads might be running as well. When a transaction is pending, this prevents other requests from getting in. We use our own GCD queue for DB accesses.
Renaming files to help RubyMotion resolve dependencies correctly
Terminate hook chain if false is returned
Avoid NSDate integer conversion methods in favor of ruby
Use NSThread.currentThread.threadDictionary for multi-threaded handling.
GROUP BY
Scope#order can accept array of symbols
Scope#to_sql_sq returns single-quoted SQL (unescaped) for easier copy and paste from REPL for debug.
Properly escape double quotes
Improve joins. Polymorphic associations.

* Passing optoins in save calls, used to prevent loops when saving associated instances.
* has_one support