Make `compose` a notation rather than a definition

This makes life a lot easier; we don't have to be constantly unfolding it, and we can avoid `Local Arguments compose /.` and `simpl rewrite` in lots of places.
Do you have any suggestions for a pattern that would work?  I'm not sure why the existing pattern broke, maybe because Coq can match better on definitions than on notations?