add a init system to initialize functions.

It uses a in-place linked list. It has a variable number of runlevels.