It's because people are depending on internals of bower, like
"bower/lib/renderers/StandardRenderer"
Instead we move templates and bin to lib directory and leave
paths intact. Additionally we alias bin/bower to lib/bin/bower.
This commit changes the interface of the command functions exported by the
files in `lib/commands`. The functions now return a promise and accept a logger
as the first argument. This has several advantages
* The promise style is consistent with the rest of the code.
* It removes a lot of duplicate code.
* The command factory does not need to proxy the logger object.
This was an huge commit.
- Allow nested commands
- Switch resolve cache in memory object cache to LRU
- Store non-semver packages in the cache
- Tweak help messages
- Various fixes and tweaks