Listen to Collection `add remove` instead of a custom `change` trigger

Also, template uses hasChildren helper instead of the contents attribute
Move load semantics into load method
Removed `set` method by defining `parse`, removing `trigger('change')` and updating `load` logic.
Renamed `add` to `addChild` to avoid confusion with Backbone.Collection.add
Merge branch 'master'
Merge branch 'loading-semantics' and `load-addchild` together