Prototype of using real native flocking instead of Java file lock.

Java file locking uses fcntl(2), which has visible behavioral
differences from flock(2) as used in MRI. Some of these may be
severe enough to warrant us attempting to do a native flock(2)
when possible:

* flock blocks if two fd's try to acquire exclusive locks
* fcntl only allows exclusive locks on files opened for write
* fcntl only allows shared locks on files not opened for write

There are disadvantages to using a native flock, however:

* flock does not work on NFS mounts
* Other JVM libraries will not see our flock locks
* Other JVMs will not see our flock locks (unless using JRuby)
* fcntl has other advantages over flock.

We will need to debate including this.

See #828 for details.
Need jnr-posix 3.0.1 for JRuby 1.7.5.
Update spec for new flock and match behavior.