Added system.isPromise and enabled promise conversion in observable.

The observable plugin will now detect promise properties, wire
callbacks, replace them with observables and update their values when
the async task completes.