Use tap as test runner
Don't cache target package.json

Using require() means being subject to require.cache, which isn't
useful to us. In particular, it makes it really hard to write multiple
tests against the same package.json path within a single process.
Update normalized pkg when raw pkg changes
Project.nameVer() to get package@x.y.z
Project.optionalDep() for get/set of deps
Add CLI for updating package version

Like 'npm version', but also updates sl-blip dep if present, doesn't
touch git, and doesn't fail if the version doesn't change.
slt-release: update sl-blip deps if present

Switch slt-release to use the version setting in strong-tools. It
doesn't treat an unchanged version as an error and it also updates
the sl-blip dependency if present.

This will help with strongloop-internal/scrum-nodeops#182

As a bonus, resolves #16
Use sl-blip
Ensure versions are properly formatted
slt-release: normalize version prefixes

If both vX.Y.Z and X.Y.Z should result in the same branch/tag names
and commit messages.