Fixes a bug with SC.Binding.and and SC.Binding.or

Currently, if you define logical bindings on a class, all instances of that class will be hooked up through the same underlying object, causing issues if you want to have two instances with different values, or be destroyed at two different times. Bad news. This PR fixes it and provides unit tests.