External modules in uTVM

@manupa-arm ah I don’t necessarily think use of fcompile is a bad idea, but for µTVM then that does mean that you must pass fcompile, so we just need to make sure the API is easy/obvious enough to use (or build another API on top of this).

re: the SaveToBinary: I agree that would be a convenient way of bundling stuff. my concern there is that currently the µTVM flow produces artifacts that can just be passed directly to a compiler (if .c file) or linker (if .o). this then allows users to easily implement a custom tvm.micro.Compiler instance. if we are producing a custom binary format, it may be a bit trickier to do that.

if producing a library containing C source + accompanying .o , we may need to see how best to export that as two files from export_library so that ordinary build toolchains can consume them. we might be able to leverage the tvm.micro.MicroLibrary class.