Send private messages

Loosely based on pull request #2 with a bit refactored API.