Allow any 'callable' action, not just anonymous functions

If creating routes dynamically, like the following:

```php
$router->getRoutes()->add(new Route(array('GET'), '/foo', array($this, 'xxx')));
```

... then the previous code will fail because `php array($this, 'xxx')` is not an instance of Closure, however `is_callable` will work just fine.
Find any 'callable' action, not just anonymous functions
Make Paginator::getUrl have priority over appends
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
Tweak test
Make the Console\Command and Console\Migrations\BaseCommand abstract
increased length of redis queue random id to 32 chars
adds php timezone validations
Eloquent Pivot - Make sure raw attributes setting also set's original data

Fixes bug that calls db update from pivot models that haven't even changed
Eliminate array_merge() on insert call for performance
make OptimizeCommand compile views
Respect DELETED_AT constant if set for soft deletes
adds test for timestamp validation
correcting character-set changes
documentation changes
Added Builder::rightJoin() and Builder::rightJoinWhere()
sync() triggered after 'saved' event, so listeners can detect dirty properties that got saved
Cast resource route options to array
Throw DecryptException on error, for consistency
Merge branch 'pull-request/throw-decrypt-exception-on-decrypt-error' into 4.2