Merge branch 'josh-emu' into with-menu-waypoint

This includes the addition of menu and replay modules as their own entities and also implements waypoint based record and replay.

Manual ik-mode has also been started though is a little buggy for now.

ik module has been given an init function so that it already has a handle to the movement q.

ik_move_goal has been altered to return time of longest movement in ms.

replay and sigmoid move use delayuntil function to prevent cumulative error from scheduling.