Simplified and HTML lowered statement dumps

Initial import, adaptation, and cleanup of statement simplification, HTML dump. Original code by @zingales. This needs a review.
Re: javascript backend, this is true, but altering the output format based on the filename feels like a bad API. What if there was an optional format argument? e.g.

   enum StmtOutputFormat { kText, kHTML };
   void Func::compile_to_lowered_stmt(const string &filename, const Target &target, StmtOutputFormat fmt = kText);

?