Sync with attributes

So the idea here is that you would want to sync with attributes.

There is one problem that I know of with this implementation. As attach does not know how to handle updates of attributes the code is checking to see if the pivot already exists. This would mean that existing pivots would not get their attributes updated.

Usage without attributes:
$model->othermodel()->sync([1, 2, 3]);

Usage with attributes:
$model->othermodel()->sync([1 => ['position' => 1], 2 => ['position' => 2], 3 => ['position' => 3]]);