Rework how modules communicate (fixes #34)
Allow each platform to specify its protected symbols