All Eloquent relation types should use fully qualified column names.
Detach before attach to prevent uniqueness constraint conflicts

Example:
You have a uniqueness constraint on id and position on the pivot table. You have a list of items and each items has a position in the list hence the position field on the pivot.

You would like to remove one item from the bottom of the list and then add another one in it's place. You do this in a form, and get back a json object that has the new desired list of items. You would now like to sync this json object up with the db so you use sync(). Now sync() will try to attach a new item with a position of 3, but that position already exists and an exception is thrown.

By first detaching the old item in position 3 and then attaching the new one this conflict is removed.

Signed-off-by: Andreas Heiberg <git@andreas-heiberg.com>
Merge pull request #724 from AndreasHeiberg/bug-sync-uniquenesss-constraint-conflicts

Detach before attach to prevent uniqueness constraint conflicts
Added `DB::listen(Closure)` method which may be used to listen for database queries.
Merge pull request #699 from JonoB/master

Added saving and saved model events
Fix Eloquent save events.
Added `Model::findOrFail(id)` and `firstOrFail` methods to Eloquent. Throws `ModelNotFoundException`. Can listen in your apps and return 404 repsonses if you want.
Fix double table prepend.
Fix typo.
Fix some issues in Eloquent.
Merge branch 'eloquent-touch'
Work on many-to-many touching.
Working on tests.
Adding some touch tests.
Added getter / setter for touches.
Delete method is unnecessary. Can just call "detach" without args.
Fix sync with strings.
Fix whereNull short-cut.
Added ability to totally disable the query log.
Added "unguard" method to Eloquent model.