Full semver support in Bower #1

@devoncarew 

* Support for various semver range operators in dependencies in bower.json with version resolution via GitHub tags: e.g. `^1.2.3`, `~1.2.3`, `>=1.2.3 <2.0.0`.
* Support `latest` as a meta-tag designating the latest released tag + default an unspecified tag to `latest` instead of `master` previously: e.g. `Polymer/polymer#latest` or `Polymer/polymer` will currently resolve to `Polymer/polymer#0.4.2`.

A bunch of less important stuff is still to be implemented: will file individual issues (e.g. use "resolutions" from bower.json instead of proprietary overrides from CDE flags, resolve possible conflicts, use Bower registry to discover packages without explicit paths...).
Is `top package` a special constant or have special meaning?