Add module level inliner, which is a minimum viable product at this point.
Also add some tests for it.
The module inliner does inlining in module level, which is a more general level
than SCC level. The main benefit is that the inliner order could be released.
With this module inliner, the inline order is not limited to bottom-up order, which
is limited in SCC inliner. Also, we could evaluate more globally scope inline order heuristics.
It's possible to explore the improvement with different inline orders with this module inliner.