gh-856

**not ready for merge**

While doing some preliminary investigation around #856 I looked into whether it makes sense to have a `makeTransitionManager()` function that returns an array augmented with additional methods (which makes sense, on the face of it, since the transition manager is basically a list of transitions), or a `new TransitionManager()` constructor which *contains* said list.

Did some quick profiling and it looks like the constructor is the better option - slightly counter-intuitive, perhaps (constructor requires creating a separate array, etc), but I think browsers are better able to optimise this case. Certainly makes code look and feel a bit more sensical.

The actual issue in #856 hasn't been addressed yet, not totally sure what the best route is. But there's a test, which is a start.