Add failing spec for addBeforePathChangeListener

The changeHander method isn't being called when expected;
it's being called after the change has been applied.
Fix addBeforePathChangeListener, call before

When the path was changed through a binding, preserve the before
semantics of the scope.

This was provided by Kris, but does cause a failure in one of the
existing specs
Merge pull request #1334 from mczepiel/before-change

Call beforeChangeListeners before the change happens