restrict_to_target_regions and target_regions also need to be processing profile params
Extract methods to parse args and handle the meat of file-based locking
Hook into Nessy for locking

Use the Nessy locking server if the env var GENOME_NESSY_SERVER is set.

The existing disk-based locks are still used primarily.  When the old-style
lock succeeds, then it calls the equivalent Nessy lock method.
Tighten up the new Nessy locks

When locking, get the Nessy lock first, then the file-based lock

The Nessy lock adapter now understands the 'wait_on_self', 'block_sleep'
and 'max_try' options.

lock_resource and unlock_resource generate error_message()s when unexpected
things happen, like if we can get a Nessy lock but not a file-based lock.