Added module system.

Modules are automatically loaded through macro/linker magic inspired
by linux's initcall feature.
Added .gitignore