Introduced several object/element-related bindings, etc.

I've been playing around the code and trying to figure out the design intents and how things should actually work. I ended up with making some changes as the result. I'm not sure if the changes align to the design intents, or conflicts them, though. Any thoughts/questions on them will be nice.

(@cjolif, @edchat, @neonstalwart Any thoughts from you will be nice, too)

The changes I made are the following:

`getValue()` no longer sends future changes
--------

Moved code handling future changes to `then()` and made `getValue()` a sole getter, sending current value to the callback. Also introduced `setValue()` working as a setter.

Introduced `ObjectBinding`, separated from base `Binding`
--------

The new `ObjectBinding` does not change the parent object via `is()`.

Introduced `WidgetBinding` separated from `StatefulBinding`
-------

The new `WidgetBinding` can specify what widget attribute should be the main value. Also it excludes `id` attribute from the list of child binding, as it should be immutable. Made `StatefulBinding`'s main value just a placeholder, as it does not make sense for it to handle a specific Stateful property.

Introduced `ElementAttributeBinding`, `ElementClassBinding`, `ElementCollapsedBinding` and `ElementHiddenBinding`
--------

They can be created as children of `ElementBinding`, with `[attribname]`, `.classname`, `.collapsed`, `.hidden` keys, respectively.

Update - Since the 1st commit
--------

Added a bunch of stuffs since the 1st commit, which are:

* Added memory management (destroy()/reset())
* Introduced Observable, working like mutable version of Deferred/promise - I made it a separate module to support memory management and then() cascading
* Introduced ElementBinding.foreach() (Support for repeat)
* Introduced data-mvc-bindings (Support for declarative binding)
* Introduced SnapshotBinding (Support for commit/reset)

README in https://github.com/asudoh/dbind/tree/worka has more details. Tests that would demonstrate newly added stuffs are:

* testForeach.html (Repeating)
* testMobileList.html (Repeating with dojox/mobile)
* testLoan.html (Very similar to loan test in dojox/mvc)
* testMasterDetail.html (Similar to dojox/mvc/tests/test_async-mvc_repeat-simple.html, with commit/reset support)
* testDeclarative*.html (Declarative)