kpatch-build: new module building interface

This changes the kpatch-build interface for patching modules.  It takes a completely different approach than what we have now, so it starts with a revert of #238.

It builds the entire kernel tree, vmlinux and modules, in a single pass and then detects which modules need to be patched.  This is the easiest case (since the user doesn't need to care about which binaries are affected) and the safest (since the user could be wrong).

The first build with no ccache takes a long time, but after the cache is populated, it only takes about two minutes on my laptop.  It does take up a TON of space in the cache now though (~/.kpatch/obj is now 8GB).

It also adds a new `-t` option which allows custom build targets to be specified on the command line instead of the default vmlinux and modules targets, e.g. `kpatch-build -t vmlinux -t drivers/hwmon/coretemp.ko ~/foo.patch`.