Fix for https://github.com/laravel/framework/issues/2404

The implementation of compileInsert in SQLiteGrammar uses
array_keys($values[0]) to build column names. It should use
reset($values) like in the default implementation.
Fix for SQLiteGrammar
Fix unioning more than 1 query
Merge branch '4.0'
Added whereNotBetween support.
Add support for order by and limit on MySQL update queries.
Cast wheres to array.
Merge branch '4.0'
Merge pull request #2405 from sergiu-paraschiv/master

Fix for #2404
Remove collate nocase on SQLite orders.