Require cordova for mobile only

This PR has major changes to how the project is structured. The end goal was to split the `cocktails_app` into 2 applications `cocktails_desktop` and `cocktails_android`. This allows only the `cocktails_android` app to require the cordova js lib. For desktop deployments we deploy the `cocktails_desktop` which means there are no cordova related errors thrown.

The positive of these changes is we can create apps for each platform giving the ability to require only what is needed for that platform. Also we can customise apps depending on platform much easier this way.

The negative is an added burden of minimising code duplication within the app level. This has been done by keeping the apps as thin as possible and moving the common code to `cocktails_core`.