Explictly check return from lock functions

Currently the postgres adapter uses connection#select_value which looking at the documentation the call chain is :

select_value -> select_one -> select_all

select_all "... returns an array of hashes ..."
select_one "... selects first hash of array ..."
select_value " ... selects first value of hash ..."

This means that when selecting more than one value in a statement you need to explictly request which column you want.

In some Rubies maybe select_value always returns the output of the lock functions but at least in REE/MRI 1.8 and jRuby in 1.8 mode where I tested this is not true.

The fix is simple - use execute and retrieve the value ( PR coming ) or change the SQL to only select the lock function result.
Obtain lock once before giving up if 0 passed as timeout. Fix #12
Lazy loading modules.
Code clean-up
Update travis matrix and add jruby support
ies to match closure tree.
Merge branch 'fix-postgres-locking-selects' of https://github.com/agworld/with_advisory_lock into jruby_support
Removed test support for AR 3.0, 3.1, and MRI 1.8.7
Merge branch 'master' of https://github.com/seuros/with_advisory_lock into pr13

Conflicts:
	.travis.yml
	ci/Gemfile.rails-4.1.x
fix tests.sh and whitespace twiddle
added another delegate and removed whitespace
fix all the env_db consumers
Merge branch 'pr11' into pr13
~> doesn't work like that.
add test for issue #12
allow edge and rbx failures.
added lock timeout documentation
fix allow_failures
bump travis
v1.1.0
fix wrong ~> usage