Add test cases which cover the trailing whitespace behavior of code blocks

Summary:
Code blocks should have all whitespace preserved identically, so that things like "lang=invisible" work as expected. Add test coverage around that.

Previously, the plain-text version of code blocks did not obey this rule. Make it obey the rule for consistency, and add/adjust test coverage.

Test Plan: Unit tests.

Reviewers: garoevans

Reviewed By: garoevans

CC: aran

Differential Revision: https://secure.phabricator.com/D6316