Add optional keys argument to join.

Some channels require a key before joining is permitted. This pull request adds the ability to supply that key.