Validates an extension package

This change provides a function to verify that a package file is valid. It also provides the beginning infrastructure for the rest of the package installation tasks. Some notes:

* I created `src/extensibility` to hold the extension manager and, likely, the core framework for a new extension API when we create it. Right now, there's just Package.js in there to support the management of packages (and that only has one public function in it!)
* I checked in the `src/extensibility/node/node_modules` directory to ensure that we always have access to the proper versions of the modules used. Unfortunately, that makes up a big chunk of the diff for this pull request.
* I found it much faster to do TDD directly with node, so I installed jasmine-node (globally) and run that against `src/extensibility/node/spec/`
* There are also tests that run in the normal Brackets test runner, though they don't cover quite as many cases. It would be ideal if we had a way to run the node tests and bring the results back to the Brackets test runner