Add empty skeleton of C API files.

Doesn't do anything yet. The goal is to provide reusable C API in
addition to the Objective-C one.
Add el_base32_{decode,encode} C functions.

Add base32 implementation from
http://code.google.com/p/google-authenticator/source/browse/libpam/ to
the C library.

License is the Apache License as well.  It is short, easy to understand
C code and unlike EL's current implementation, it handles extra
whitespace or dashes and common typos during decoding.

No changes to it, except for adding el_ prefix to function names and
improving docstrings.
Change el_base32_{decode,encode} string buffers to be char*.
'1' -> 'I' is better than 'L' for base32 decoding of license keys.
Use el_base32_{encode,decode} in the rest of the code.

Remove duplicated base32 implementations, keep just the one.
Get rid of cleanKeyFromLicenseKey:

As the comment suggest, it is better to do in base32 decoding (which the
Google version does).  Removing this required some refactoring
elsewhere.

Most notable, the output of hashStringOfLicenseKey: changed.  Instead of
hashing the key string, after cleaning it up, it hashes the key data
after base32-decoding it.
Move SHA-1 digest calculations to ec_compute_digest().

Use the same function in all places, except for the NSData category.
Use truncated SHA-256 instead of SHA-1.

Using truncated output of one of the SHA-2 function is recommended over
the vulnerable SHA-1 hash and is supposed to be stronger.

See
http://crypto.stackexchange.com/questions/9435/is-truncating-a-sha512-hash-to-the-first-40-characters-as-secure-as-using-sha1
for a more detailed discussion.

Notice that blocked keys are still hashed with (full) SHA-1: it is
shorter than SHA-256, we don't worry about collisions in this use case
and it doesn't hurt if the digest hash and blocklist hash are different.
Fix elgen to not hardcode NID_secp112r1.

The code accidentally used a single hardcoded EC.
Reimplement license verification in C.

Not yet used by the Objective-C interface.
Make elliptic_license.h C++ friendly.
Fix compilation with pre-C99 compilers.

Annoying, even Visual C++ 2013 cannot compile C99.  This required two
changes:

 1.  el_base32_*_buffer_size() can't be inline
 2.  variable-length arrays cannot be used and the buffers must be
     allocated on stack