* Check for in-use web port before starting so we can display a useful error message
* Remove 'web' command and instead make it an optional argument for `run` (default to web)
* Update dockerfile to use run command
* Remove remaining commander option defaults since they are defined in config builder now
* Use cache manager instance in UserNotes and callback to report stats
* Simplify sub resource config interface and setter
* Use cache manager for express session
* Add session cache provider to operator config
* use node-cache-manager so operator has a choice of memory or redis
* BC update TTL values to be in seconds instead of milliseconds
* Count requests and misses for cache
* display cache stats in ui
* Implement a weak/strong interface for operator (app) config
* Consolidate config parsing code into ConfigBuilder
* Implement parsing configuration from a json file
* Refactor configuration parsing so there is a clear hierarchy to where and how config is overridden
* Fuzzy match on all identifiers to enable detecting small variations in title/body
* For reddit media submissions (image/video) check title instead of url
* For submissions with external url also check title
* Use async/queue for handling activity processing on each manager
* Refactor polling to push activities into activity queue
* Refactor manager state to control activity processing queue and event polling independently
* Pause activity processing and wait until no work is being done to do config update
* Add way more logging for new systems
* Add basic ui controls/view for new systems
* Refactor program options to allow running as web
* Implement authentication using reddit oauth
* Use session in memory to store identification and accessible subreddits
* Implement socket.io with shared session to enable streaming logs
* Implement log streaming with per-subreddit views
* Update ajv to fix #ref warning
* Consolidate ajv instantiation so config is always the same
* Remove propOrder flag for schema generation since its out of spec
* Refactor application input to use commando for extensibility
* Add all args/env as options for easy readout on command line
* Add 'check' command to allow running checks against a specific activity
* BC: must specify 'run' to run regular manager/unattended operation
* Generate individual schemas for root objects from config (Rule, RuleSet, Action)
* Using ajv validation means we can also report all validation errors
* Remove noisy generated guard files
* Return plain data (RuleResult) with setup (premise), boolean triggered, and optional result text/data (for later use in action maybe?)
* Use RuleResult to prevent running a rule that has already been run with the same setup (premise) -- will speed up execution and prevent extraneous api calls
* Get comment text from wiki page with 'wiki:' prefix in content
* Cache for 5 minutes (will make configurable later)
* Render comment content with Mustache template
Closes#2