Support file input type.

Fixes issue #144, where file input elements are not bound.

Example:
```html
<input bind-files="files" type="file" multiple="multiple"/>
```

```dart
import 'dart:html';
//....
  FileList files;

  void buttonClick() {
    for (File f in files) {
      // do something with f
    }
  }
```
Implement == in SafeHtml and SafeUri

Review URL: https://chromiumcodereview.appspot.com//13265002
Don't update DOM properties when value is the same (fix #368)

Review URL: https://chromiumcodereview.appspot.com//13270002
Merge pull request #434 from yohcop/patch-1

Support file input type.
Switch observable to be a mixin

Review URL: https://chromiumcodereview.appspot.com//12457046
Fix #435 - print more accurate error messages when files are not found.

Review URL: https://chromiumcodereview.appspot.com//13275002
fixes #422, observable map iterators behaving incorrectly

Review URL: https://chromiumcodereview.appspot.com//13293008
add insertionPoint member
TBR to fix bot: https://drone.io/dart-lang/web-ui/288

Review URL: https://chromiumcodereview.appspot.com//13354006
bump pubspec to 0.4.4
Update CHANGELOG.md
Remove workaround in TodoMVC tests
The tests are in the latest SDK: https://drone.io/dart-lang/web-ui/291
So the workaround is not needed anymore.

Review URL: https://chromiumcodereview.appspot.com//13349008
move observable utils out of public api

Review URL: https://chromiumcodereview.appspot.com//13196009
merged