Revamping the internal implementation of modulators

Lots of duplicated duration code, etc. Renaming that to the more sensible term "period" for looping modulators. Added subclasses to do basis progression so Modulator implementation classes generally just build a function based on a basis fro 0-1. Also add listenability to parameters for changes.