Allow merge to actually merge in another array or collection.

Currently a collections `merge` method essentially collapses the array into a single array and merges the values in. This PR renames the `merge` method to `collapse` and implements another `merge` method that allows an array or an object that implements the `ArrayableInterface` contract to be merged into the collection.

Example.

```php
$collection = new Collection(array('name' => 'Jason'));

$collection->merge(array('age' => 22));
```

Tests included.