Add $restart support.

Previously this parameter did nothing, lets make it actually work.
Fix a few tests.
Add a comment to make this clearer.
Apparently we were restarting no matter what the parameter said,
awkward.
Merge pull request #401 from apenney/restart

Restart