DRYed out subscriptions into an adapter. removed support for binding-level subscription logic. added reactive#.get(prop) and reactive#set(prop, val) to support other model implementations and make two-way binding easier