Optimise Morpheme generation

1. Add reverse variants of stringtoMorphemes and nodeToList so that we can skip reversing when it doesn't really matter (when generating trends, we throw into Redis anyway, which sorts for us)

2. Add tests to make sure 1 works as intended and to make sure the morphemes received are as expected