Bug 725409 - Modules should have metadata to specifying applications' compatibility

- Added `engines` property to metadata
- Replaced manual exceptions for unsupported application in modules
- Modified cuddlefish and loader to enable parsing module's metada during module loading
- Added methods to `xul-app` to verify the applications' compatibility
- Update unit testing