Allow running multiple init functions when using JSON mapping file.

Fixed #104.
Merge branch 'v4.0' into 85-namespaces

Conflicts:
	script/generate_code.py
Re-organize namespaces based on #85.
Rename serial namespace to uart.
Checkpoint commit, re-organizing files (rebase this, it won't compile!)