Adds support for optional web field.

This change makes nimrod-code/packages#31 useful.
Rewrites requiredField on top of optionalField.
Puts TPackage json initialization into single proc.
Implements path command for packages.

Use this to find the absolute path to installed software.
Merge pull request #13 from gradha/pr_adds_web_field

Adds web field
Merge pull request #14 from gradha/pr_path_command

Implements path command for packages.