Rename all units from Unit to UnitN, then typedef or alias the single
channel versions to Unit.  Less typing FTW.
Make envelope use vectors rather than arrays for control point storage,
as it means we can have nicer initialization.