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
ditto on the use of `i` as a struct pointer