ioreg: Extend doc comment syntax

This reworks the parser to distinguish between inner, outer, and trailing doc comments.

 * `///` is an *outer comment*, applying to the next item in the current block
 * `//=` is a *trailing comment*, applying to the previous item in the current block
 * `//!` is an *inner comment*, applying to the owner of the current block.