Make bower do the same with '*' using semver 2 as it used to

In `semver@1.1.4`:
```javascript
semver.validRange('*');
> false
```
`semver@2.0.7`:
```javascript
semver.validRange('*');
> true
```

There is a very particular edge case where this causes us problems, to do with repos that have no tags AND no `bower.json` AND the dependency version is specified as `*`. Luckily that particular problem can be worked around in one line.

There is also a change in later versions of semver so that `semver.satisfies(foo bar)` will throw an exception if `bar` is not a valid semver version rather than just returning false as I think it used to. I've put a try/catch around one place where this could happen.