Taxon ordering [Fixes #3390]

Per some comments on the issue thread I've reworked the taxon ordering code to more fully leverage the underlying `awesome_nested_set` gem that is providing our taxon tree structures.  New tests added to stave off regressions.

Comments welcome.