steam-id: implemented the SteamID interface

This implements an elegant interface for working with 64-bit SteamIDs.
The interface is implemented with only a simple series of macros, which
eliminate the need of storing the SteamID in abstract data formats. As
are result, the steam-id interface requires very little memory.

This removes the existing SteamID implementation within the steam-user
interface.
steam-crypt: implemented cryptographic interface

Currently, the plugin handles some cryptographic operations internally
via GMP. However, as time has progressed, it is has become evident that
this is not practical. This was done initially to prevent from having to
implement and maintain the three different SSL libraries which bitlbee
supports.

Advantages of libgcrypt:
  - Available on most systems
  - Has the required cryptographic implementations
  - Prevents the implementation of three SSL libraries
  - Required by bitlbee for OTR support

The cryptographic interface is based on libgcrypt. As a result of
introducing libgcrypt, GMP is no longer needed.
Migrate from the Steam Web API to the Steam protocol

When the plugin was first developed, it was not possible to have more
than one Steam client open. However, that has since changed, and rather
than deal with the joys HTTP, this plugin should move to the real Steam
protocol. This will also make way for new features down the road, such
as group chats and nickname setting.

This relies heavily on SteamKit, which provides a reverse engineered
Steam client as well as the Protobuf files for the Steam protocol. In
addition, the protobuf-c library has been introduced to make use of the
protobuf files provided by SteamKit.

This patch will only migrate the plugin the Steam protocol. Once the new
protocol implementation is working correctly, new features will be added
to the plugin.