testsuite: Add various test cases

Some are xfailed, some not, some existing ones get un-xfailed.
Oh, cool, I xfailed the wrong test, neat
testsuite: more `pub fn main`
another pub fn for check-fast
Fix pretty-printer test failure by carrying the bound lifetime names through
the types.  Initially I thought it would be necessary to thread this data
through not only the AST but the types themselves, but then I remembered that
the pretty printer only cares about the AST.  Regardless, I have elected to
leave the changes to the types intact since they will eventually be needed.  I
left a few FIXMEs where it didn't seem worth finishing up since the code wasn't
crucial yet.