Added location information to Kramdown::Element.

* Uses StringScannerKramdown (which has current_line_number method) instead of StringScanner.
* Records :location option on all Kramdown::Elements where this makes sense and where it is easily implemented.
* Initializes nested StringScanners with their parent Element's :location as start_line_number.
* Adds tests for :location information.
* Adds tests for StringScannerKramdown.

See pull request for more details.