Fix #1003: Select multiple statements to format

Now we only format the selected statements instead of the entire
surrounding node (body / CU).

Required the addition of FormattingUnit to store start and end tokens
for a node so that we don't lose comments between nodes (as we would if
we used the start and end token _of_ each node).