fix keywords field

Ensure that keywords is always an array of strings
Check for typos in fixer

This removes the need for a 'isValid' check prior to running
the fixer, which can lead to some duplicate warnings.
Introduce strict mode

Invalid semver 2.0 versions throw, so the strict mode flag will tell it
whether or not to be loose in what SemVer accepts.

Also, set the default warn function in fixer to a no-op function.
Merge pull request #27 from isaacs/master

Updates to use SemVer 2.0 with strict/loose mode
Remove obsolete isValid function.
modules field is now removed by fixer (with warning).
Allow urls as dependencies

The requirement that they be semver ranges is too strict.
Merge pull request #28 from isaacs/master

Allow URLs as dependencies
Allow tags or urls as dependencies

The requirement that they be semver ranges is too strict.  Since tags
can be any arbitrary string, we have to allow any arbitrary string.
0.2.0
Document strict mode.
don't warn if private = true

This fixes isaacs/npm#3490 where the conclusion is, that if
the package.json has a private = true, it should not warn.
Merge pull request #30 from robertkowalski/implement/npm-private-no-warnings

don't warn if private = true
Document suppression of warnings when private field is set to true.
0.2.1
Allow shorthand style for the repository field

If "user/reponame" is given as url in the repository field, create a
github-git-url from it.

Example:
user/reponame gets to: git://github.com/user/reponame

This fixes isaacs/npm#3783
Tweak readme.
Merge pull request #31 from robertkowalski/implement/npm-3783-shorthand-repo

Allow shorthand style for the repository field.
Better test for user-name/repo-name.
0.2.2