Consolidating compile-fail and ui testing, and possibly others as well

This is exactly what I'd like to see as well. Former compile-fail tests still ensure that erroneous code produces errors, and former ui tests still ensure formatting is good + cross checks for extra reliability, and all this without having to write something like

//~^ NOTE
//~| NOTE 
//~| NOTE
//~| HELP
//~| HELP
//~| HELP

manually.