Improved handling of leading whitespace during serialization

* "Normally", leading whitespace in wikitext trigger indent-pres.
  However, there are some exceptions to this rule. This behavior
  is captured in information about weak and strong indent-pre
  suppressing tags. Weak tags only suppress indent-pres in their
  immediate DOM children (caveat: while ignoring any zero-width
  wikitext nodes). Strong tags suppress indent-pres in the entire
  DOM subtree they generate.

  Ex: Whitespace before <td> wikitext (" |foo") will not generate
  pre-wraps. But, whitespace inside <td> will generate pre-wraps
  ("|\n foo"). So, <table>, <tbody>, <tr> are all weak indent-pre
  suppressing tags.

  Ex: <blockquote>, <ref> extension tag are examples of strong
  indent-pre suppressing tags. Indent-pres generation is entirely
  turned off in these tags.

  In addition, block tags suppress indent-pres on the lines
  they are present.

  This patch updates wikitext.constants.js with the right set of
  weak/strong indent-pre suppressing tags.

* makeSeparator in the serializer tries to account for leading
  white-space in separator text. However, it needs to know whether
  the separator is being generated between siblings or between
  a parent and child. The leading-whitespace-stripping behavior
  differs in these scenarios. This patch carries over this information
  to makeSeparator (and appropriately updates it in selser mode)
  to account for block tags.

* There are still gaps in our handling (there is a FIXME in the
  code as well as a new failing test that I've added to the
  blacklist). We dont need to address that immediately but as we
  continue to update our support for serialization of arbitrary
  HTML, we will have to tackle it.

* Added various tests for serialization of new content that will
  exercise these different code paths.

* Test result changes:
  - One html2wt failure is because of missing support for arbitrary
    HTML (see above).

  - One additional selser failure is because selser is more accurate
    than wt2wt (which strips leading whitespace unnecessarily).
    "Extra newlines: More paragraphs with indented comment [3,4,0,2,0]"

  - One additional passing selser test is because of improved
    indent-pre handling

  - Two new html2wt tests pass with this patch (but would have
    failed without it).

Change-Id: I49123699b7710737cfcb835143a2fb861c3ad1f0
Merge "Improved handling of leading whitespace during serialization"