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>
> This function just finds the latest version of the app in the apps store when the app version is not specified in the requests. SelendroidStandaloneDriver already checks and raises SessionNotCreatedException if the request application is not in the apps store.

This method returns `null` if the application is not in the list of `supportedApps` when looking up the latest version. I think it would make sense to then _always_ check if the requested application is in the list of `supportedApps` otherwise the behavior of the methods differs depending on what you configured for the AUT.

Currently it works like this:
- if you have not specified a version, you get the latest version of the application in `supportedApps` or `null` if the application is not present in `supportedApps`
- if you _have_ specified a version, it just returns that app string, even if it is not in the list of `supportedApps`

That is inconsistent behavior. Can you fix it and add a test?