Simplified and HTML lowered statement dumps

Initial import, adaptation, and cleanup of statement simplification, HTML dump. Original code by @zingales. This needs a review.
As mentioned previously, the compile_to_simplified _lowered_stmt overloaded method calls were created to mirror the Func::realize overloaded method calls as close as possible. For this reason I do not feel comfortable changing it to Buffer.

On the issue of template, I used the exact same template structure as is used in Func.h:488. If the use is reasonable in one situation I do not understand the difference.