Normalize observer emit and cancel patterns.

Defaulting to noop is not always necessary. Observe functions are not
obligated to return a cancel function. Short circuiting is common enough
to break the style guide on conditional expressions.

And don't forget the missing null checks on the with block observer.
Alterations to object by label observers

1. Removes support for annotating the syntax tree with the last known
object to be observed for a label on that node. This is necessary for
syntax tree memoization. This also breaks a few Montage test cases that
may or may not be important: `serialization-spec` localizations unit
serializer serializes default message binding, and serializes data
binding, as well as `bindings-spec` should serialize a binding that
references external objects.
2. Adds support for `observeObjectByLabel` that has been useful in
experiments where the object in scope may change in response to panel
changes in a substitution.
3. Removes the alias `getComponentByLabel` because, in the context of
Montage serialization, labels may be applied to any value.