If the SCM does not require a workspace for polling, do not try to get one.
More logic adapted from AbstractProject.poll: decorate launcher, and lock the workspace if there is one.
Forgot getters.
Call calcRevisionsFromBuild just once even if there are multiple SCMListener’s.
Attempting Mercurial integration points out an API deficiency in SCM.checkout.