Fix task scheduling validation
Fix wrong search&replace of nextRun->getNextRun
Fix conversion of Once schedule
Task config handling change

As we use more durable "useProperties" in QZ for simple DB use,
we must enforce no null keys and values are in config. Also,
before task was unaware is being configred, now is.

Finally, some ITs were failing as it seems null=null
mapping is added by XStream to task props always.
Avoid task being removed if schedule is invalid
Added some validation on schedules
Fix UI re taskConfig changes
Fix check  for Monthly last day of the month
Assume NX Jobs w/o listener are removed.

As there is a "window" currently, where this might happen.
We will probably need to revisit this, maybe GC the jobs
instead removing them directly from NexusTaskInfo.
Enforce one day to be selected in task weekly/monthly schedule
Reschedule called wrong method
Fix YUM ITs after config changes

As YUM juggles a lot with task vs config instances
(as before they were same), but after latest changes
the config _is_ a copy, and modifications to it
are NOT affecting tasks anymore, unless task excplicitly
reconfigured.
Renamed method to better reflect what it does
Task by key may return null, guard against it
Applied H2 changes recommended by Stuart

FS lock used, changed lock recovery code, and cleanup up
a mess I did when code got initially "borrowed"
NEXUS-7786: Fix for non-fatal NPE on boot

Changes:
* QZ lifecycle managed by JSR250
* Capability left but "demoted", putting scheduler in "stand-by" mode is still useful
Fix weekly/monthly time scheduling
Currently we shutdown JSR-250 centrally, so need to make sure we share the same lifecycle module across all bundles. When we switch to individual bundle lifecycle management in the next container update this can be removed.
Merge pull request #902 from sonatype/NEXUS-7786-non-fatal-npe-qz

NEXUS-7786: Fix for non-fatal NPE on boot
Fix UT