The Kernel::new() function now returns an @mut box.

The Kernel will not be usable otherwise. So there is no point of letting the user choose the
memory location.
Moved demos on the `examples` folder.
Moved dependencies to the `lib` folder.