Insertion Sort implementes on `add`

Now, the collection isn’t prompted to re-sort itself whenever new
models are added to it. Instead, as models are added, they are inserted
at the correct index in `collection.models`, but without necessarily
iterate over all its models for each new model.

`collection._isSortedBy` keeps the last compartor used to sorting.
Doing so, whenever `collection.comparator` is changed, `add` will know
that `sort` has to be called after the models inserion.