Firebase example + bug fixes

- move ensurePath() to Observer.js
- add Observer.ensurePaths(), which deals with the situation
  when a scope object with nested values is given a new value
  with incomplete nested structure. e.g. this.val = {}
- fix Directive argument regex
- sd-model: no longer locks during set() so filters work on
  input fields
- sd-repeat: handles undefined update, also fix transition
- utils.attr now takes additional `noRemove` argument
- ViewModel.$emit now also triggers event on itself