Added checking for output directory in LoggerContext creation
Significant refactor of project to better modularize responsibility among packages, projects and classes