implemented two-way data binding

I think I resolved #11

I rewrote some logic and put ``$parsers`` and ``$formatters`` to handle values. Now an object can be set directly to ngModel's directive and a asynchronous request is made to know if it's valid in suggestions. If ``editable`` is false, then the model is ``undefined`` (input display remains intact).
Supports multiple datasets.

See this forked plunkr for demo: http://plnkr.co/edit/HdqhSmyGonELkIcoZm8x?p=preview

I tried to cover most use cases.

Know issue: there is a little "flick" with remote data.