Redesigned initialization to use a central hebel.init() function.

The function hebel.init() takes care of all initialization steps,
including creating CUDA and CUBLAS contexts and seeding the PRG.
Also, a yaml config file may now contain an `init` section that
defines `random_seed` and `device_id`.