start/3: simplify interface

liblxc:start/3 now returns true or false, just like the liblxc API.
Since internally, the liblxc API function is called after a fork, return
true if the fork succeeds. If the fork fails, we return false. Maybe we
should crash here (either return badarg or exit).

The real start is done in the child and only returns after the container
is stopped. The child sends a message to the Erlang process in the
external term format. This message can be read using erlxc_drv:event/1
and has the format: {fun name, result}

The user has to deal with these events because erlxc_drv is now a
library rather than running as a gen_server.
Add "safe" wrapper around erl_malloc