Massive refactor...
Massive refactor... tbd
Slowly getting refactor back in control
Continue massive refactor:

  - [~] Massive Refactor
    - [x] extract classes to single out functionality and testing,
          future task will be to break apart again
    - [x] make to work after crazy refactor => must be done one command at a
          time
Continue refactor:

  - [x] refactor CheckConfigs by passing CommandOptions instead
In middle of fix
Work on template switch:

- [x] Massive Refactor
  - [x] build command, stop looking for config when it is specified
  - [x] make CheckConfigs return config file if `-c` specified
- [x] Sub commands should be within Test-Flight Options?
  - [x] Remove exit code in Test-Flight
  - [x] Add config file command param `-c`
  - [~] but, filemode does not skip dir mode required files => the template
        is calling for a directory. Require a new Dockerfile template when
        in single file mode. Test command: `clear && make test-build-s`
    - [x] Add FilePath() to generate file paths
    - [x] Move templates to sub dir `dirmode` and `filemode`
    - [~] Modify CreateDockerImage() to generate dockerfile based on template
          which changes if set to filemode.
Update todo for massive refactor
Continue with refactor, fix bugs and take a detour:

  - [x] Bug, Not finding templates and/or dir => templates are registered
        by name specified within, pass only the dir to the template func
  - [ ] Detour, fix makefile deps install
Continue massive-refactor with syncing commands and finishing detour:

  - [x] Detour, fix makefile deps install
        => added `make link` to link project to the GOPATH
        => allows for fully qualified "github" import paths now
  - [x] Parser always kicks out error, ugh, verify. => default behavior,
        see: [parser_private.go - Line 313](https://github.com/jessevdk/go-flags/blob/master/parser_private.go#L313)
  - [-] ~~Change singlefilemode to just filemode~~ => chose singlefilemode
        to use `-s`.
  - [~] finish filemode on all commands (build, launch, template, abstract it)
    - [x] Sync up & Refactor all commands (build should be latest)
    - [x] move ConfigFile and BuildFile types into respective locations
    - [x] Add location to ConfigFile and BuildFile for reference
    - [x] Finalize Build command
    - [x] Add check command
    - [ ] Add Images command
    - [ ] Add Launch command
    - [ ] Add Ground command
    - [ ] Add Destroy command
    - [ ] Add Version command
    - [ ] Add Template command
Move command methods to specified file, work on Images command:

  - [x] Add Images command
Work on launch command:

  - [~] Add Launch command
    - [ ] Bug, fix response code issue when running test-launch-f-s
Work on bugs with launch on file and dir mode
Finish Launch command and fix container bugs with it:

  - [x] Fix test-launch (to some degree)
  - [x] Bug, fix response code issue when running test-launch-f-s
    - [x] Fix template generation command to use mode dir
    - [x] Add `Logger.What()` command to help console debugging
    - [x] When error from create container, print it?
    - [x] Add `known_issues.md` to list known issues
    - [x] Copy inventory and playbook templates to `filemode` dir
    => Found that Dockerfile template did not specify `CMD` since I
       commented it out for testing. Remote Docker endpoint returned
       HTTP Status code 500 with no other information. Docker docs (atm)
       only say server error. Checked remote endpoint logs, and revealed
       that "no command was specified", which means no "CMD" was found
       in the Dockerfile. Think that docker error codes should come back
       with some messages.
Finish on `Ground` and `Destroy` commands:

  - [x] Add Ground command
  - [x] Add Destroy command
Finish work on massive refactor:

  - [x] Add Version command
  - [x] Add Template command
    - [x] Remove flight control testTemplate method
    - [x] Add additional logging to docker template creation
Merge pull request #7 from JasonGiedymin/0.9.5/massive-refactor

0.9.5/massive refactor