trigsimp mods

add a few more patterns and a function to bypass patterns that
need not be tested -- it's expensive to run match so this allows
the match to be skipped if it's the wrong type of pattern.

Also, the way noncommutatives is handled is changed: rather than
using nearly identical patterns, the relevant expression is split
into commutative and noncommutative parts. This yields slightly
faster run times.
move patterns to their own function

This allows the patterns to always be tested whenever changes are made
within simplify.py.