Convert long regex into a switch statement for clarity
Allow transformation tests to carry additional tags (e.g., comments)
Ensure OpSetParagraphStyle position is first step within the paragraph

The merge paragraph op depends on the impacted paragraphs being identified
by the position of the first step within the paragraph. In order to
facilitate OT'ing of paragraph-based ops, all paragraph ops need to
consistently use the first step in the paragraph to identify the paragraph
they impact.
Make SplitParagraph op specify the new paragraph style

In order to allow convergence between collaborative clients, the split
paragraph op needs to specify what the resulting style of the new
paragraph will be.
Remove createOp function to improve closure compiler's type checking

Having the createOp function prevents closure compiler from accurately
detecting if any of these ops are being constructed with incomplete or
incorrect data.
Change OT to handle new paragraphStyleName property in SplitParagraph

In particular, to allow SplitParagraph to transform with SetParagraphStyle,
the source paragraph boundaries for the split paragraph op also need to
be recorded.
Merge pull request #647 from peitschie/op-split-para

Implement OT for SetParagraphStyle vs. SplitParagraph
Group up style information changes and report at the end of an op batch

Operation batches that modify a large number of paragraphs (or repeatedly
modify the same paragraph) can cause numerous unnecessary style change
events to be triggered. Rather than reporting these instantly, track them
as they occur and emit the style change summary on batch end.

Related to #610.