Add support for keyword parameters

Woop woop

Follows the `{{foo bar=baz}}` syntax, but should be easily modifiable.
If the method only takes a keyword arg, this can be broken by a bad template:

```
irb(main):001:0> def foo(x:nil);end
=> nil
irb(main):002:0> foo "bar"
ArgumentError: wrong number of arguments (1 for 0)
```