Add support for multiple platforms in OpenShift.
Changes span both the broker and the node.

Add a setting named 'NODE_PLATFORMS' to broker.conf.
Add an optional attribute named 'platform' to cartridge manifests.
Add an optional 'Required' attribute for the 'Scaling' key to cartridge manifest.

Broker queries nodes of all platforms when building its cartridge cache.
Broker does not allow group overrides for cartridges of different platforms.
Broker uses the cartridge platform to filter nodes based on the 'kernel' fact.

Node handles the case when a web proxy cartridge is not collocated with a web cartridge.

Modify tests to take new logic into account.
Add tests to cover new code paths.
Fix "create scalable app with custom web_proxy" test expectation.
Fix getting cart from CartridgeCache in the context of an application.
Merge pull request #4944 from UhuruSoftware/master

Merged by openshift-bot