Transforms a file like this:

    //: # A basic Rust Example
    //:
    //: This file will showcase the following function:
    //:
    //> ____
    pub fn strlen<'a>(s: &'a str) -> usize {
        s.len()
    }
    //:
    //{
    #[test]
    fn test_strlen() {
        //}
        //: It works as expected:
        //:
        assert_eq!(strlen("Hello world!"), 12);
    } //

into this:

    # A basic Rust Example

    This file will showcase the following function:

        pub fn strlen<'a>(s: &'a str) -> usize {
            s.len()
        }

    It works as expected:

        assert_eq!(strlen("Hello world!"), 12);

These are the default comment markers:

- `//:` introduce narrative comments. These lines will become the
  document text (by simply stripping the `//:` part). Everything
  that doesn’t start with such a comment will be output verbatim
  (though perhaps indented; see below).

- `//` at the end of a line will exclude that line from the output.

- `//{` and `//}` enclose blocks that will be excluded. This is so
  you don’t have to postfix every line with `//`, but also because
  some code formatters will sometimes rearrange trailing comments.

- `//>` to indent all following verbatim output by this many spaces.
  So `//> ___`, `//> ...`, and `//> abc` would all result in an
  indentation by 3 spaces. The default indentation is zero, and a
  plain `//>` resets the indentation to zero.

These can be configured, so they’ll work with any programming
language that has line comments. There is also nothing special about
the use of Markdown in the example above. You can use any markup
language at all; `rsticle` doesn’t actually do a lot besides
processing these comment markers.
