So I'm just gonna say this right now the finale of my film is pretty awesome, I mean it has a unicycle for pete's sake. Of course that means I would have to animate a unicycle. Screw that lets script it.

It's really not that hard once you get down to it. 
The first step for both direction and wheel rotation, get a vector of where you are now compared to where you just were. 

for wheel rotation take that vector and divide it by the radius of your wheel and you have the amount of rotation in radians, easy.

For direction use atan2 on the vector to get the rotation for the direction.  I also check to see if I'm moving backwards from where I was just and then offset the rotation so it doesn't just flip around.

one problem right now is to have auto/manual control I add the change in rotation for both the auto and manual controls to the the current rotation, which is going to cause problems for direction at least when I loop through the animation.

I'll need to add a hard manual mode where the rotations are directly linked to the manual controls.  Then I just have to start my animation in that mode so it resets every time it loops
 
 

I need a scroll in my film so I came up with this.
There were a lot of constraints and expressions for this so I used pymel scripts to do all that for me (code is on my bitbucket site under randomMelAndPymel.py)

how i works:
each of the curl controls has a locator that has the same y position as the control unless the control is on the far side of the other control

that locator drives set driven keys on its curl chain and bend deformer fix

if the bottom locator is above a bind joint (actually reference joints off to the right in the video) that joint is constrained to the bottom curl otherwise its constrained to the top

I was a little lazy with the orientations(lack of sleep due to last week of term) so I couldn't use a parent constraint and had to use separate point and orient constraints.