FEATURE: validate app manifest

This change introduce a validation step in the install/update pipeline
and show validation errors descriptions into the dashboard,
a new remote SimulatorActor command (validateManifest) use
b2g PermissionsTable and AppsUtils.checkManifest to detect
and prevents known error conditions.

- update cached manifest
- validate manifest on install/update

blocking errors:
- missing manifest
- manifest json parsing error (using jsonlint)

non-blocking errors: 
- missing name
- wrong type (e.g. hosted could not be type privileged/certified)
- unkown permission
- denied permission
- invalid access

DEMO: http://youtu.be/Py8FCadnOH8