add free and bound identifier sets

Still need to add docs, but wanted to see if anyone had feedback.

I will squash when done.
The default indentation of `for/fold` always seemed weird so this was me trying to change it. Maybe the style guide should say something?