better handling of preproc statement indentation

This PR does a few minor things:

1. Preprocessor lines are pushed to the start of line, so they don't have their own indent, and are skipped for the purposes of determining the indentation of other lines.

2. `default:` is properly aligned as with `case 'x':` statements (it had been left out)