docs(formatter): add information about sourcecode
refactor(rule): move rule* to rule/
refactor( rule ): add RuleError object

RuleError object has custom line and column
fix( markdown ): fix range algorithm

missing +1 == \n
refactor(rule): add `RuleError.prototype.toString`
fix( markdown ) : fix range array

- add test
fix( markdown ): use structured-source to compute column number

Column number detail info:

- Column number starts with 1 in CommonMark AST.
- Column number starts with 0 in StructuredSource.

The AST have to been adjusted column number.

structured-source:  https://github.com/Constellation/structured-source
Thanks @Constellation!