Revive SplitFile pass.

This (kind of) reverts commit eaa43850ff7a7ae14467ecb358bc392aef534d8d.

We still need to be able to specify different PPCG flags for
different functions that are originally in a single file, so we revive
the SplitFile pass.

The pass has been updated as follows over the dropped original:

 - Include printing of types.  Not sure how this was handled in the
   original pass.
 - Rename the overrided function "execute" into "walkProgram".
 - Only print functions that have a body and are not static.
 - Build a call graph, to include all called functions in the new
   files.

Change-Id: I4c152ce7fdbcf89f91a4990222c762d70b7ee86b
Corrected example after Function constructor changed

Change-Id: Ib3be694f998f59e2899172ee6f1ecc36a1351404
Link math library at the end in the testsuite.

Change-Id: Ic463c506be13343f6f96663dc7e0e7cf58b09b6a
Print summary functions first.

Change-Id: Ida627a4e30e0218e36ef1f1b2f24ec4656410433