Kwargs for merge (#228)

To kick off the keyword args debating, I adapted merge. As implemented here, you can do:

```julia
merge(df1, df2, "colA", "inner")
merge(df1, df2, "colA")
merge(df1, df2)  # all as before
merge(df1, df2, jointype = "inner")
merge(df1, df2, by = "colA")
merge(df1, df2, jointype = "inner", by = "colA")
merge(df1, df2, by = "colA", jointype = "inner")

# Note: you cannot use:
merge(df1, df2, "colA", jointype = "inner")
```

With keyword args, you can have different styles. I chose supporting both keyword args and optional positional arguments for the same thing. Another style would be to only support keyword args. Another is to try to support everything, including the unsupported option above. 

As we're reviewing, please check the argument names, too, because those are now more user facing.