Source map tests.
Store indentation change in source map.

Used to infer it when required, which could go wrong.
Fix `to_original_pos` for indented blocks.
Clean up poorly overloaded 'add' method.