Scripting Commands

This PR implements all the scripting commands. It also implements a macro that allows you to define Lua scripts as methods in a module.

```elixir
defmodule MyScripts do
  use Exredis.Script

  defredis_script :lua_echo, "return ARGV[1]"
end

client |> MyScripts.lua_echo(["mykey"], ["foo"])
# => "foo"
```

I have also updated the `defredis` macro to account for nested commands. 
```elixir
defredis [:hello, :world], [:arg]
```
The above call would define the method `hello_world/2` and call the command `HELLO WORLD arg`