better patch file cleanup

If the patch file fails to apply, it "corrupts" the cache by leaving the
old applied-patch file around.  Fix that by always cleaning up after
ourselves.
try source patch before compiling kernel

Add a patch testing step before compiling the kernel, so that users
don't have to wait for the kernel to compile before seeing if the patch
applies cleanly.

Also allow the printing of the patch command's stdout/stderr to make it
clear what files are being patched and whether there's any fuzz.
properly detect no changed objects

The current solution doesn't work because "$?" will always be 0, even if
there were no "CC" lines in the build log.  Instead, just make sure the
changed_objs file isn't empty.
make the changed function output more readable

This makes it much easier to spot which functions have changed,
especially when there are more than one of them.
compile tools with -g for debug symbols
Merge pull request #59 from jpoimboe/compile-debug-symbols

compile tools with -g for debug symbols
Merge pull request #58 from jpoimboe/changed-function-output

make the changed function output more readable
Merge pull request #57 from jpoimboe/no-changed-objects

properly detect no changed objects
Merge pull request #56 from jpoimboe/patch-error-handling

Improve source patch error handling