Fix bug where child dependency relationship would not be set correctly.
Make installed dependencies without --save and --save-dev being recognised as root dependencies.

They continue to be labeled as extraneous but will be part of the tree.
This fixes #602 and cuts the way to implement #603.
This also fixes an issue with --save and --save-dev possibly saving more than it should.
Do not declared linked packages as dependencies in the init command.
Adapt list command to the new tree.
Prune now recursively prunes until no more extraneous are found, fixes #708.

This is necessary because a pruned package may contain packages that become also extraneous.
Related with #609.
Uninstall now deletes uninstalled packages dependencies if they are non-shared, fixes #609.
Always save endpoints specified with --save and --save-dev.

Even if the installed ones were different (user choose a different one on conflict).
Typo.
Merge pull request #709 from bower/several-improv

Several improvements and fixes