@CheckForNull
[FIXED JENKINS-21023] Rewrote WorkspaceCleanupThread to determine where workspaces for known items should be, rather than looking for directories that look like they might be workspaces.
One key advantage is that this correctly handles the new default workspace location on the master.
Another is that this allows folders to be correctly skipped, and jobs in folders to be correctly deleted.
A subtler advantage would be handling of configured nondefault workspace locations, and compatibility with WorkspaceLocator.
(Orphaned workspaces from deleted jobs are not removed, but these were not removed before either.)
Merge commit 'cd526e99e63ae362f2d1ce1a04c3c68a38032a5c'
[FIXED JENKINS-21639] Prevent creation of job named '.'.
Merge https://github.com/jenkinsci/jenkins into dot-name-check
[FIXED JENKINS-20730] Use correct folder in log message
Merge pull request #1118 from daniel-beck/fix-ooom-message

[FIXED JENKINS-20730] Use correct folder in log message
Noting #1118
Merge branch 'dot-name-check' of github.com:daniel-beck/jenkins into daniel-beck-dot-name-check
[JENKINS-21639] Noting merge of #1117.