Range parsing is done on each :g//subcommand

This allows things like :g/hello/+2p
Pull out range-defaulting for :p and :j
Added :d + factored out common code between it and :j
Update cursor on :d/j
Prevent backslash as a :g separator
Don't preserve cursor position on :g//
Notes about issues with :g//
list_iter_region() passes a list and allows early termination
flag :g// matched lines instead of using a range

This means if lines are deleted we won't overrun like we would with
a range.
:g// correctly handles mutating the buffer
:g//d and :g//j tests