Fixes with tokens and ability to specify emotions

- Dynamic tokens will now work even with other punctuation on either side, such as parentheses or commas.
- To specify emotions, use dynamic tags like <adj_:)> (for a happy adjective). You can even have multiple possible emotions (<adj_:)_:(>), in which 1 is chosen at random (overriding the set ratios)
- Invalid dynamic tags will now simply do nothing, rather than disappearing.
- Fixed a bug with mapping to a function (the function was evaluated at start rather than for each call)
- Made parts of the code more readable