Various small changes

Cleaning up return types for certain functions
Reworking how Playback attaches itself to the rig
Fixed bug in Rig::addFunction that would invalidate function IDs after a
function was removed
Added Programmer object to help with writing cues

More tweaks to return types in some functions
Typo fix
Programmer tweaks
Able to make cues directly from the programmer
Layer::goToCueAtTime() added