Fully-compliant AsciiDoc tables!

This commit brings fully-compliant AsciiDoc tables to Asciidoctor. That includes the three data formats (psv, dsv and csv) as well as nested tables and cells containing AsciiDoc sub-documents*.

This patch also enforces that block delimiters be symmetric (because honestly it doesn't make sense otherwise).

Here's a summary of the changes:

- add classes to manage table content (Table, Column, Cell, ParserContext)
- parser method for processing table content
- support for nested tables
- support for tables containing a nested AsciiDoc document
- table templates for HTML5 and DocBook45
- constant for default docbook page width
- optimization for matching any block
- rename :title regex to :blk_title
- change option attributes from foo-option to option-foo
- convenience method for checking for block title
- various compliance fixes
- let literal block masquerade as listing block
- require [source] block attribute to treat listing as source code
- don't clobber custom authorinitials
- additional method on test_helper to perform css assertions
- additional method on test_helper to retrieve xml node for xpath or css

* Asciidoctor really shines here in that it can use it's own API to render a sub-document rather than shelling out to the command line like AsciiDoc.