Switch to commonmark 0.5.0

Reasons to switch:

  * Supports the CommonMark[1] "standard"
  * Fewer dependencies
  * BSD 2-clause license
  * Fast (claims 10-20 times faster than pegdown)
  * Cleaner extension API than Pegdown
  * No timeout limit required

Testing with Documentation/markdown.md:

        | cold vm | hot vm |
        +---------+--------|
  prior |   2.29s | 279ms  |
   this |   1.64s | 139ms  |

Testing with Chromium's botmap.md:

        | cold vm | hot vm |
        +---------+--------|
  prior |   3.47s | 946ms  |
   this |   1.83s | 257ms  |

Changes in Markdown from Pegdown:

  * No <<double angle>> quotes (confused with HTML).
  * No table captions (no [caption after table]).
  * Table columns are same width (no multi-column spans).
  * Smart quotes can no longer be disabled by \'.
  * Horizontal rule should be at least 3 -, e.g. ---.
    (However GitHub Flavor -- is still accepted.)

[1] http://commonmark.org

Change-Id: Ief189d0226901a284d9b86d9798310786ae1e983
diff --git a/Documentation/markdown.md b/Documentation/markdown.md
index e1c6da3..652d5ed 100644
--- a/Documentation/markdown.md
+++ b/Documentation/markdown.md
@@ -140,7 +140,6 @@
 | Apple |    95    | Yes    |
 | Pear  |   102    | Yes    |
 | Hay   |   977    |        |
-[Food and its benefits]
 ```
 
 will render as:
@@ -150,35 +149,12 @@
 | Apple |    95    | Yes    |
 | Pear  |   102    | Yes    |
 | Hay   |   977    |        |
-[Food and its benefits]
 
 Placing `:` in the separator line indicates how the column should be
 aligned.  A colon on the left side is a **left-aligned** column; a
 colon on the right-most side is **right-aligned**; a colon on both
 sides is **center-aligned**.
 
-An optional table title can be placed under the table in brackets
-(`[...]`).
-
-Cells may span multiple columns and include formatting accepted within
-paragraphs such as emphasis, images or links:
-
-|              | Grouping                    ||
-| First Header | Second Header | Third Header |
-| ------------ | :-----------: | -----------: |
-| Content      | *Long Cell*                 ||
-| Content      | **Cell 2**    | Cell 3       |
-
-the above table was created by:
-
-```
-|              | Grouping                    ||
-| First Header | Second Header | Third Header |
-| ------------ | :-----------: | -----------: |
-| Content      | *Long Cell*                 ||
-| Content      | **Cell 2**    | Cell 3       |
-```
-
 Empty table cells are indicated by whitespace between the column
 dividers (`| |`) while multiple column cells omit the whitespace.
 
@@ -213,14 +189,11 @@
 
 ### Smart quotes
 
-'Single', "double" and <<double angle>> quotes in paragraph text are
+'Single' and "double" quotes in paragraph text are
 replaced with smart quotes.  Apostrophes (this doc's text), ellipses
 ("...") and dashes ("--" and "---") are also replaced with HTML
 entities to make the documentation appear typeset.
 
-To force use of the ASCII characters prefix with \, for example `\'`
-for a \' normal single quote.
-
 ### Blockquotes
 
 Blockquoted text can be used to stand off text obtained from
@@ -253,20 +226,20 @@
 Create a fenced code block using three backticks before and after a
 block of code, preceeded and followed by blank lines:
 
+````
+This is a simple hello world program in C:
+
+``` c
+#include <stdio.h>
+
+int main() {
+  printf("Hello, World.\n");
+  return 0;
+}
 ```
- This is a simple hello world program in C:
 
- ```c
- #include <stdio.h>
-
- int main() {
-   printf("Hello, World.\n");
-   return 0;
- }
- ```
-
- To compile it use `gcc hello.c`.
-```
+To compile it use `gcc hello.c`.
+````
 
 Text within a fenced code block is taken verbatim and is not
 processed for Markdown markup.
@@ -331,7 +304,7 @@
 line will also create a horizontal rule:
 
 ```
---
+---
 
 - - - -
 
@@ -469,12 +442,13 @@
 
 ### HTML
 
-HTML tags are not supported.  HTML will be dropped on the floor by the
-parser with no warnings, and no output from that section of the
+Most HTML tags are not supported.  HTML will be dropped on the floor
+by the parser with no warnings, and no output from that section of the
 document.
 
-There is a small exception for `<a name>` and `<iframe>` elements, see
-[named anchor](#Named-anchors) and [HTML IFrame](#HTML-IFrame).
+There are small exceptions for `<br>`, `<hr>`, `<a name>` and
+`<iframe>` elements, see [named anchor](#Named-anchors) and
+[HTML IFrame](#HTML-IFrame).
 
 ## Markdown extensions
 
@@ -768,17 +742,6 @@
   imageLimit = 256K
 ```
 
-### Parsing timeout
-
-Parsing Markdown can be expensive so this implementation places
-a default upper bound of 2 seconds on running time per document.
-This is measured in wall clock time from the start of the request.
-
-```
-[markdown]
-  parseTimeout = 2s
-```
-
 ### Google Analytics
 
 [Google Analytics](https://www.google.com/analytics/) can be