JSMessagesProtocol addition

as discussed in pull request #97, new protocol.  Let's see if my pull requests are better this go-around.  =)