Huge commit.

- Add search command
- Cache clean now clears the registry cache
- Fix error when accessing an unknown deep command in the cli
- Change from 'roaming' to 'path' in the config
- Change from 'canonicalPackage' to 'canonicalDir'
- Fix dev dependencies of nested packages being fetched
- Ignore invalid installed packages
- Various cache fixes and improvements
- Fix .bower.json being deleted if a package specified ignorables
- Use fstream instead of ncp to solve the EMFILE errors