Separated the InitTemplate step into FetchRemoteTemplate and ValidateTemplateDirectory

This makes the code simpler and easier to test.
#55 In preview, avoid cloning remote repositories on every refresh
Use the CommandRunner
Added unit tests for FetchRemoteTemplate
Merge pull request #58 from CouscousPHP/remote-templates

Fixes #55 and code refactoring