Added CommandId to commands
Added CommandStartedEvent
Commands are stored in memory and prevents duplicate jobs
Type and Command have private setters
Better names, more info, not using events
Added ProgressMessaging through nlog
TrackedCommands are cleaned up automatically

TrackedCommandCleanupCommand is not tracked
Cahce.Remove is now void

Added tests for Cache.Remove
Commands return immediately and signalr is used to control the UI
ScheduledTasks properly set last run time now
Fixing CommandIntegrationTest - for now
If nzbdrone restarts mid command the client will treat it as failed
Fixed the broken tests
Added progress messaging, using info logging

Also extension methods for complete and failed (for coloured UI messaging)
semi-colon required