Locking is now local to the build method, and doesn't need cleaned up

Previous code had the chance to leave the locks active if the build
method died, and so had extra code to clean it up various places.

This version creates the lock as a local variable to the build method,
so it is guaranteed to get cleaned up when the method exits for any
reason.
Changed lock-taking to nonfatal

Per discussion with Henry, it is better to just continue if we can't
acquire the lock rather than throwing an exception.

Also: to test the locking code, using the following after $lock= and
before $self->build_asset :

  if ($ENV{SLEEP}) {
    print STDERR "Going to call build_asset, but sleeping for "
      .$ENV{SLEEP}." first\n";
    sleep $ENV{SLEEP};
  }

and then run as

  SLEEP=20 prove -lv t/05_scopify.t &
  SLEEP=5 prove -lv t/05_scopify.t &

The first one should sleep its entire 20 seconds before the second one
prints its message.

This should be made into a test case.
Remove the testing code from previous commit
Fixed whitespace
Added TODO reminder testcase for parallel/locking
Added discussion of potential locking pitfalls in POD
Bumped version to 0.28
Merge pull request #2 from silverdirk/local-method-lock

Local method lock