Add progress bar

This is the new progress bar code. I'm not entirely happy with how it integrates (see comments on the commits)  but I'm also don't feel that getting it perfect is necessary right now.
No, I need to do that. Further this needs to be able to obey the unicode flag in NPM, which isn't currently possible. (There's an npm issue for that.)