Replace bcache-register with native c code

I run archlinux and this is my mkinitcpio.conf:

~~~~
MODULES="bcache i915"
HOOKS="systemd autodetect modconf block bcache btrfs filesystems keyboard fsck"
~~~~

I'm using the systemd hook instead of the base hook. This means my pre-boot environment is pure systemd, no busybox. This breaks bcache-register. In the pure systemd pre-boot environment, there is no busybox and there is no `/sbin/modprobe` (or any modprobe binary) anymore. Here is a replacement bcache-register binary that use libkmod to do the equivalent work.

My understanding is that systemd-as-early-boot is the direction upstream - both fedora and arch - wants to go, thus this prepares bcache for this eventuality.

Should you choose to adopt this, feel free to critique/request changes.