[RFC] Refactor the compile_engine to expose a Relay -> TE translator

Another requirement I have for the general TE translator is to support an arbitrary Relay function, including the Relay function with more than one reduce op (e.g., conv2d). The current compile engine doesn’t allow this pattern because it selects one schedule implementation per Relay function, but this should not be a limitation anymore if you are going to decouple the selection of compute and schedule. However, we probably don’t have to cover it in this RFC if that’s out of scope to you.