Return iterators as a result to queries, remove context requirement, etc

The option of returning iterators as a result to queries would allow to iterate over the results of large queries without the need to store all the rows in memory.

Added the methods
- findAll: return an iterator over all the elements of the table
- findAsIterator to query the table with an iterator
- findWithQueryAsIterator, same as above

Also in this pull
* Removed the context requirement on table creation and query execution
* Improve SQLite type detection in QueryBuilder
* Removed unnecessary instance variables from SugarRecord

Ignore: call to `onLoad` at the end of `inflate()` (reverted the commit anyway). This needs more analysis to establish its usefulness.