2-way binding, bindable selection, and efficiency improvements - fixes #2 #7 #9 #13 #15

Introduces breaking API change to enable 2-way data-binding from virtualized elements to their data models (templates should bind to user data on `model.*`; see API docs for details).  Also makes selection property bindable, and provides efficiency improvements when muting data array (elements are no longer re-rendered on `data.push`, etc.).