Refactor mkrootfs.sh into collection of subdirs and Makefiles

There are substantial additions needed in the stage1 rootfs and we've reached
the limit of sanity with what's already happening in mkrootfs.sh.

This is a largely mechanical splitting of mkrootfs.sh functionality with just
some small fixups like improving the caching to notice CoreOS url/ver changes.

Adding new things to the stage1 rootfs requires the following:
1. Create a new directory under stage1/rootfs/$new with an appropriate Makefile
2. Add the directory to _SUBDIRS in stage1/rootfs/Makefile
3. Add any installation steps to stage1/rootfs/aggregate/aggregate.sh

The aggregate subdir is always the final target to be made, even when built
parallel.