Refactoring config module

The following modifications are presented:
 * Command line input validation
 * Config is refactored to singleton and moved out to its own namespace
 * Camman line variables are parsed before main application is called