Split app name and version in Capabilities.

To enhance capability matching and to select the latest version of the app to test if the
app version is not provided by the users. This enhancement still retains the backward 
compatibility when users specified an AUT as "appName:appVersion".

Signed-off-by: Binh Vu <bvu@paypal.com>
Can we shuffle the logic in this method around a bit. I think it's not clear from the code what it does. How about:
```java
public String getDefaultApp(Set<String> supportedApps) {
  String defaultApp = getAut();
  // Always just return if the launch activity is specified
  if (getLaunchActivity() != null) {
    return defaultApp;
  }
  // App version is not specified. Get the latest version from the apps store.
  if (!defaultApp.contains(":")) {
    return getDefaultVersion(supportedApps, defaultApp);
  }
  return supportedApps.contains(defaultApp) ? defaultApp : null;
}
```