extended the protocol to include a signature header if the message is signed

NOTE: this breaks compatibility ... but since it's still in development and it's not
used in production yet ... we can afford such a change to the protocol.

Unsigned communication still works with older implementations