Private/protected indenting

This implements different indenting for private/protected scopes, depending on an option. The original issue is #177.

This has yet to be documented and should be tested thoroughly before merging.