Create driver model and refactor virtualbox dependencies into driver

Laying out some foundation work for multi-hypervisor support. Some keys changes include:
- New Machine interface defined in driver/driver.go.
- Move common data structures from virtualbox into driver package.
- Eliminated all direct references to virtualbox package.
- Added --driver flag. e.g. boot2docker-cli --driver=dummy up
- Added --init flag for optional auto init. e.g. boot2docker-cli --init=true up
tiny nit: I have been encouraged in peer reviews of my own code to reserve variables like `i` to be integer index counters for loops... so that others looking at the code are least surprised.  So if you agree, you could make this variable `mc` or `m`.  If you want to leave it as is, that's fine with me too.