Reference string constants rather than repeatedly

allocating the same string in order to deduplicate
commonly-used strings, reduce object allocations
and memory usage.
Avoid unneeded `try` call which adds object allocations
Merge branch 'master' of https://github.com/activerecord-hackery/ransack
Fix a conditional to handle the null case

Not passing an options hash into sort_link caused it to fail
to look up the link title.

This is because `!args.first.try(:is_a?, Hash)` would return true
if the length of args was 0.

I've simplified the logic to just test if the next parameter in args
is a String (rather than test if it's not a Hash).
No need for array here
Conditions constant only used once, so not needed.
Use constants instead of string keys.

At least until we are all using the upcoming Ruby 2.2 which
will make this unnecessary.
Add a missing freeze
This test is broken since yesterday by Rails master

because the form tag helper fields are no longer sorted.

Bypass it for now when running travis-ci with Rails master
until the test is updated.
Move string constants into Ransack::Constants
Constant used only once, so freeze in-place instead.
Replace string with frozen constant.
Freeze more one-off strings.
Fix bypassed spec that was broken with Rails 4.2 /master
Fix failing spec with less DRY code just for Rails 3.x
Clean up spec
Update change log [skip ci]
:scissors: whitespace
Add predicate tests for lteq, lt, gteq, and gt

A regression was introduced in Rails 4.2/master (or Arel),
where lteq and lt predicates accept numeric input only and
blow up with string input.

Rails 3.x, 4.0 and 4.1 handled string input fine.
Use Arel master with Rails 4.2/master for now. Fixes #444.