Refactor payment protocol (third step)

First commit renames PaymentRequestException to PaymentProtocolException. I thought since the repackaging is imminent now would be a good time to rename the exception.

Second commit adds methods for creating and parsing all kinds of payment protocol messages.