Created module random

onion_random_* is a simple API to generate random data. The default
implementation uses rand() as underlying engine.

A simple unit test was created also, it does not check the randomness
of the random_module, it is intended to just check if the
coding was done correctly.
Gnutls based random module

If onion is compiled with SSL support, the random module will use
gnutls to generate safer random numbers. Otherwise, rand() is used.
Other modules using random module

Now the sessions module and the websocket module uses the random
module.
Changed API of random module to use size_t

size_t is used as the type of the amount of generated bytes.

Also, fixed a typo on include guard.
Added test 01-internal 19 on CMakeLists.txt

The test 19 was commited but it was not included on CMakeLists.txt.
Fixed that.
Small improvement on onion_sessions_generate_id()

onion_random_generate is called only once to generate 32 random numbers.
onion_random_init/onion_random_free thread-safe

If libonion is compiled with pthreads enabled, onion_random_init and
oniom_random_free are thread safe.
Minor changes to random to ensure only one mutex lock and unlock to prevent bugs.