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
Added parameter  in Factory and Validator to use the Validator::make()
Renaming Section.php file
Renaming in a separate commit to retain git history
Cache tags feature
Changes cache Sections to Tags, and allows multiple tags per cache.
Make TaggedCache implement StoreInterface
This way, a tagged cache can be passed to a class that expects a StoreInterface, and doesn't have to know that it is dealing with a tagged cache.
Tag-related operations can be handled outside the class.
Work on refreshing the request instance of shared instances.
Tweak container rebinding method.
Don't reboot app on each test... only once per test case.
Changed method scopes.
Merge branch 'master' into refreshing
Organizing bootstrap scripts in preparation for Stack compatibility.
Continue work on StackPHP compatibility.
Fix a few request bugs.
Move trailing slash redirection into middleware.
Throw exception when accessing request outside of scope.
Add semicolon.
Run method is no longer needed.
Trailing slash redirector no longer needed. Just use .htaccess.
Fix bug in where constraints for optional parameters.