Specify exact dependency versions

Better to explicitly specify the versions that are officially supported.

Also added `components/` to .gitignore, I thought this was frivolous enough not require it's own PR :)