Test refactor, timeout=0 fix, and PIDLockFile fix


Summary of changes:
* Tests refactored to remove duplication and split into two classes (one for threaded distinction and one for non-threaded distinction) for localizing the differences between the behavior in each style of operation.
* The previous fix for the timeout=0 bug still exhibited the same bug as before.  Switched to using a conditional expression instead of relying on short-circuit logic.
* The PIDLockFile class was throwing an error when subsequently acquiring the lock in the same process/thread, complaining that the file already existed.  To fix this, I added a check in acquire that returns immediately if self.i_am_locking() is True.
* Added Python 3.4 to the tox config.