Command-line argument handling and configuration, error handling

Added:

 - parser for command line arguments
 - CompileOptions class as a centralized place to handle user CLI
configuration
 - scalatest tests for the parser
 - designed error handling