+1 for the order.

One gotcha is that we are in the compatibility mode with the shell script version right now, and @aheissenberger just changed the names of ENV vars we read to be consistent with the shell version. 

The problem is that those ENV vars (e.g. `VM_NAME`, `VM_DISK`, `VM_MEM`)  are not prefixed with, say `BOOT2DOCKER_`. It was not a problem in the shell version because those vars in `profile` are not exported—the shell script just `source` them so the scope does not matter. 

In the Go port those ENV vars have to be exported to take effect, and there is real danger that someone might have `VM_NAME` / `VM_DISK` / `VM_MEM` defined for a completely different purpose, and those will screw up `boot2docker` CLI. That's one of the reasons when I wrote the initial Go port I prefixed the ENV vars with `BOOT2DOCKER_` at the cost of compatibility. 

Now with the flags we have to be even more careful.