Changed initial module creation to dynamically compose precompiled modules

Also required refactor of how targets are specified. Now it's a struct instead
of a string.

Also added code to CodeGen::optimize_module that strips out unnecessary symbols
Merge branch 'runtime_refactor' of github.com:halide/Halide into runtime_refactor