feat(ngSocket): add promise support to send()

This commit has the send() method return a cancelable promise to the application,
allowing the application to respond when the message has been sent to the socket,
and also allowing the application to cancel a message.

Closes #10