Add SourcePawn language, part deux (replaces #1011)

Merging current master and regenerating `samples.json` to land #1011.

/cc @bkeepers @arfon @tnm @CrimsonTautology