Added the DeletedState class
IBackgroundJobClient now exposes the Storage property
Comment for IBackgroundJobClient.Storage property

[skip ci]
Header for DeletedState

[skip ci]
Mocks for state contexts to simplify unit-testing
Connection property moved to the StateContext class
StateChangeProcess now performs work to elect and apply state
StateMachine class is now internal
StateMachineFacts class clean-up
Allow transitions from any state
Exposing Connection and StateMachineProperties in IBackgroundJobClient
Add BackgroundJob.Delete and IBackgroundJobClient.Delete methods
Add DeletedJobsPage and methods for IMonitoringApi
Do not throw when job queue contains jobs in non-enqueued state
Add `Delete job` button to the Job Details page
Add BackgroundJob.Delete overload to specify allowed transition
Add `Delete job` button to the Failed Jobs page
Make state handlers internal
Global counter for deleted jobs
DeletedStateHandler for Redis storage implementation