Make sure to namespace keys for EVAL/EVALSHA.

The call semantics for both these methods are pretty specific, and
require their own special case :(

Ex:

  # Both these are valid!
  redis.eval("return KEY[1]", %w[key1], %w[arg1 arg2])
  redis.eval("return KEY[1]", :keys => %w[key1], :argv => %w[arg1 arg2])

Any keys passed to Lua need to retain the correct namespace.
Added ability to use `multi` and `pipelined` commands along with corresponding specs
Return proper array of results for `pipelined` and `multi`
Add required fields to .travis.yml

According to Travis docs and travis-lint, language is required.
Also, redis isn't guaranteed to start unless listed as a service.
Consistent naming in pipelined/multi specs

Change test values used in specs for `multi` and `pipelined` to be
more consistent with the values used in other specs.
When sorting do not namespace :get if it is the special value '#'
When using the blpop/brpop commands without the optional timeout paramater, the
list_name parameter doesn't get namespaced.
Fixes this issue by checking to see if there is only one parameter.

Tests still pass and example added to test this case.
add temporary namespace functionality
Merge 'ecoffey/sort_with_hash_symbol', fixes #44
Merge 'jochemsiegel/master', fixes #47
Merge 'carlzulauf/multi_and_pipelined', fixes #43
Merge 'dbalatero/add_eval_support', fixes #42
Merge 'j-wilkins/temporary_namespace', fixes #37
Namespaced PTTL is successful on greater than -1 return value
Merge pull request #48 from ecoffey/major_meta_pr

Combine current PR's into one