Make modules public. See https://github.com/mozilla/rust/issues/8478

* Non-public modules define public functions,
* The crate’s top-level re-exports said functions as public

This should work, but currently triggers link-time "undefined reference" errors.