Use tagged-fences to discriminate docunits

Using heuristics to know what is a docunit and what is a raw block of code is not nice because syntax-errors in docunits happens and we do not want to silence them.

This PR introduces (and documents) the usage of tagged fences to force the programmer to explicit the role of the blocks of code.

By default (with indented block or untagged fences) code blocks are considered docunits to be checked by docunit.
The tag `nit` does the same.
Any other tag cause docunit to ignore the whole block.

The special tag `nitish` makes docunit ignore the block but allows nitdoc to highlight it.

~~~~
# examples
#
#     assert true # tested
#
# ~~~~
# assert true # tested
# ~~~~
#
# ~~~~nit
# assert true # tested
# ~~~~
#
# ~~~~raw
# assert false # not tested (and not highlited)
# ~~~~
#
# ~~~~nitish
# assert false # not tested (but highlited)
# ~~~~
~~~~
... for a fence**.**