WIP ENH: Add event order, rearrange Canvas arguments

This allows setting the order of callbacks when using "connect". It also contains a proposal for reorganizing some of the `app` calls in a simpler manner. Let me know what people think.