Add methods to sign a SHA256 digest directly and improve tests
Merge pull request #125 from special/crypto-signsha256

Add methods to sign a SHA256 digest directly and improve tests
Add BUG() message function
Add RSA DER encoding and decoding functions for public keys
Add specification for new (1.1.x) protocol
Update AUTHORS with protocol contributors
Add protobuf compilation support to build

This adds dependencies on libprotobuf, protoc, and a C++11 compiler.
Add ControlChannel.proto
Skeleton implementation of Protocol::Channel
Skeleton implementation of ControlChannel
Add Connection implementation for new protocol
Add Connection::channelOpened signal
Add connection logic to Channel and ControlChannel
Add purpose property to Connection
Timeout connections with unknown purpose after 15 seconds
Switch to an even-odd scheme for channel ids
Add Channel::openChannel method
Add Connection::channelCreated signal
Make Connection destruction cleaner and safer

Carefully destroy all channels when destroying the connection, to ensure
nothing accesses the deleted Connection instance.
Handle close more cleanly in Connection

The connection will be gracefully closed (allowing time for writes) when
the close() method is called. If it hasn't finished after 5 seconds, it
will be forcefully closed. In all cases, the close() signal is emitted
exactly once.