Start the kernel ids over on reset.

So that things aren't affected by wrapping over.  Although, maybe we
should handle that better if it causes incorrect behavior...
Fix ctrl reinit problem.
Prevent a buffer overflow on bad shader.
Remove compare logic from test.py, use --compare.
Merge pull request #3818 from unknownbrackets/headless

Headless - use auto compare, just build test list in test.py