Flesh out some initial firmware loading routines.

This is (a) very much unfinished, and (b) doesn't at all load
in all of the capabilities just yet.  It also (c) pulls in a bunch
of GPLed code from carl9170; this needs to be (eventually) fixed.

In any case, it's working enough to pass all of these initial
checks, so..