Fixes #53 Use the built-in TypeScript indentation support more

* there were several corner cases I wasn't aware of that this new code
should now handle properly
* there is still a bug in the TypeScript support where it won't properly
handle the first paramter in a functions argument list, but this change
is strictly better than the previous support