Initial draft implementation of flags

I've used the same flag names as the test tool, reasoning being consistency. 

There may be rare cases when the app hosting this package could have flags with the same name (ie. `outputdir`), causing them to be overridden. It may be a better idea to use prefixed flags (ie. `profile.cpu`, `profile.path`, etc.) - not sure here, it's consistency vs. potential flag name collision.