Remove extra null byte from CryptoKey::torServiceID

This method is effectively unused (only in debug messages), so this
extra byte never caused any trouble.
Cache keyfiles to avoid reading from disk too often
Remove unused CryptoKey methods
Fix boolean API trap in CryptoKey::load
Add tests for RSA key handling
Merge pull request #107 from special/tweak-key-handling

Fix minor issues and add tests for key handling
Ignore test-related build artifacts
Add BUG() message function
Add protobuf support in build process
Add ControlChannel.proto
WIP Add Channel
WIP Add ControlChannel
WIP Connection
WIP Add Connection in Channel and ControlChannel
Add purpose property to Connection
Timeout connections with unknown purpose after 15 seconds