fix selects: pointers between model & selected

Before, a simple assignation was down. Thus, the model and the selected
values were the same in case of a multiple select. Because of that,
the callbacks managed for the selected was not called as the model
changed as the same time, waking its watcher before the selected's one.
By using "angular.copy", we isolate the two values and get the expected
behaviour.

fix #30
fix selects: indexof between objects

By isolating the two values of model & selected inside the directive,
a bug was created because the indexOf was not working anymore (the
object were differents). So the object listed in a multiple were never
checked even if they were already selected in the model.
By using a custom indexof based on "angular.equals", the indexOf are
fixed and all the logic previously working works again.

fix #30
fix selects: selected items init in the dropdown

By canceling the first watch over the selected items, they were not
initialized in the DOM anymore inside the dropdown. The cancel of the
watch was added to stop a potential loop between the watchers of model
& selected.
By moving the dropdown's DOM management before the canceling, the DOM is
initialized correctly again. As the DOM update does not touch to the
model, there is no loop risk.

fix #30