Factor out config related code from main.go for better portability

This is mostly about factoring it out.
An obvious logic change results from it: we don't check for UNIX paths under Windows, and vice-versa. The rationale behind that is that it is unnecessary to check for UNIX paths under Windows, and for Windows paths when the UNIX paths fail (e.g. VirtualBox not installed).

There is however a small logic change: on Windows `getCfgDir()` will return a path to a directory named `boot2docker` whereas on UNIX it will be `.boot2docker`.