Add a 'use mod' semantic

FWIW, at work we handle these cases with multiple crates already; for each protobuf .proto file we use, there's a something-proto crate that contains the generated code and a tiny amount (if needed) of "glue" to interface it to Rust, and then a higher-level crate that imports something-proto and uses it. We do similar with -sys crates for things that use bindgen.

As a result, while this would really hurt your workflow for such things, it'd barely be noticeable to us. Makes evaluating it a little trickier, since we'd need some sense of which workflows are more common.