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
Add support for order by and limit on MySQL update queries.
Bind container into itself.
Added App::middleware method to inject middlewares onto Stack.
Cast wheres to array.
Merge branch '4.0'
A new packages directory within `lang` can now override package language files.
Added new 'Auth::viaRemember method to determine if user was authed via 'remember me' cookie.
Fix bug in type hint.
Merge pull request #2405 from sergiu-paraschiv/master

Fix for #2404
Fix some issues with Stack middleware merging.
Increase entropy on session ID generation.
Use bar "or" syntax.
Remove collate nocase on SQLite orders.