Reduce places where the _guiders array is accessed directly by calling get() or getCurrentGuider() to find guiders.

Also, simplify a few guider lookup tests to a simple truth test because the return from get() and getCurrentGuider() are normalized to null when a guider was not found in the _guiders array.
If next() is called on a guider that should be skipped, the return value from next() should be the result from the recursive call to next().
Use a counter instead of a random number to automatically assign guider IDs.

The predictable ID numbering is handy when debugging. And this technique is a tad faster.
Check for myGuider === null in _attach since typeof null is 'object'.
When adding a guider after another and setting its prev ID, reciprocate by setting the previous guider's next ID.
Add events to observe guider prev/next navigation.
Since we de-highlight guider.highlight, we should be highlighting it instead of guider.attachTo.

While it is common to set highlight to the same ID as attachTo, I often attach to one thing but highlight another--like the attachTo's container. Also, must the guider have an attachTo for a highlight to be valid? If not, the test of attachTo is also unnecessary. It's no harm right now, so I left it in.
Reset _currentGuiderID to null when all guiders are hidden.
Replace _dehighlightElement() with _removeHighlight() and call it in key places.

Note that hideAll() was often called before _dehighlightElement(). So it makes sense to ensure that the highlight is cleared in hideAll(). I also remove the highlight before setting the next one, and in the top of show().
Add descriptions for guider options that were not listed in the doc.