Add subselect to query builder
Fix many to many polymorphic pivot updates

`$morphType ` set by `setMorphType` is being included in queries from x->pivot->save() and the like. As the object is being added as a public data member on an object with an empty original, it is treated as an attribute and added as a column to the queries. As this column doesn't exist, the query will be erroneous.

https://github.com/laravel/framework/issues/3693
Make the Console\Command and Console\Migrations\BaseCommand abstract
Merge branch '4.1' into 4.2
Forward thinking for composer
Minor cs fixes
Eliminate array_merge() on insert call for performance
Respect DELETED_AT constant if set for soft deletes
Added Builder::rightJoin() and Builder::rightJoinWhere()
sync() triggered after 'saved' event, so listeners can detect dirty properties that got saved
Merge pull request #4584 from JamShady/pull-request/right-joins

Added Query\Builder::rightJoin()
Only create a "config" instance if only it not yet created.

On one of the project I'm working right now, I'm using both Config and Capsule component, since I register config service location first and then capsule, all the preloaded config is destroy on the config service location is converted to instance of Illuminate\Support\Fluent which is not ideal in my use case.

Signed-off-by: crynobone <crynobone@gmail.com>
Merge branch '4.1' into 4.2
Merge branch '4.2'
Set default value on touch.
Merge pull request #4554 from jchamberlain/4.2

Eliminate array_merge() on insert call for performance
Merge pull request #4569 from jchamberlain/4.2-soft-delete

[4.2] Make Soft Delete Trait Backward Compatible
Merge pull request #4520 from GrahamCampbell/4.3-autoloading

[4.3] Forward Thinking For Composer
Merge pull request #4481 from colindecarlo/console-command-is-not-abstract

Make the Console\Command and Console\Migrations\BaseCommand abstract
Merge branch '4.2'