Automatic links: Fix regexp for detecting email ids as per RFC 5322

(With some liberties: We don't handle quoted addresses and allow `.`
anywhere in dot-atom.)
VfmdInputLineSequence: Play safe when using currentLine
VfmdDocument: Enforce a minimum number of bytes for addPartialContent()

This would make it easier to handle the UTF-8 BOM cleanly.
VfmdPreprocessor: Fix handling of the UTF-8 BOM
Ref-resolution block: Update as per the change in spec

Corresponding changes in the spec: vfmd/vfmd-spec@8304d9a and vfmd/vfmd-spec@04c2997184
Lists: Refactor out common code between ul and ol into vfmdlistutils.h
VfmdBufferOutputDevice: Remove undefined methods
VfmdInputLineSequence: Remove undefined methods
VfmdElementRegistry: Accept triggerBytes as char*

This is simpler than using a VfmdByteArray. This would also
make it easier when preparing the SWIG interface.
Add ability to query tree nodes for data about the blocks/spans they represent
s/HtmlElementType/HtmlNodeType/g;
Introducing HtmlRenderer
main.cpp: Use HtmlRenderer
Remove rendering code from tree nodes

Rendering is now using separate renderer objects (like HtmlRenderer)
Pass HTML-rendering options correctly from HtmlRenderer to Houdini
Introducing TreeRenderer
VfmdElementTreeNode: textContent() need not be virtual anymore

And so, hasTextContent() can be done away with.