Reveal.js bug fix - the "-" slide type

This PR fixes the behaviour of the "-" slide type in the reveal.js exporter.

Currently, when one creates a fragment followed by a "-" slide type, the "-" section is always visible, even before the fragment itself. With this change the behaviour is now to reveal the "-" at the same time as the previous fragment, or at the start of the slide if there is no previous fragment. In short, to reproduce create a new notebook with a "fragment" slide type, followed by a cell with a "-" slide type, convert to reveal.js and notice the second cell is visible before the first.

As a result of getting to grips with this added logic complexity I have refactored the code and made it easier to test special cases such as the one I've uncovered.

Pinging @damianavila as I know he will be interested in the change.