Implementing mobile:background command for Android and Selendroid

Replay commit 1c6b495cd2f3fbbb8622a9fb43f3e50aa79ab82e

Remove debug log

Tidy up spaces according to pull request review

Fixed indentation according to Appium project style guide (2 spaces indent)

Fixed error management in background method

Add an argument to ADB.startApp in order to choose whether to stop the app prior to starting it

Conflicts:
	lib/devices/android/adb.js

Refactored mobile:background method for Android: using ADB.startApp rather than directly issuing am start command to ADB shell, do not return to callback until app is back to foreground

Mimick the launcher start intent for the app when starting it

The Android launcher uses the following settings to start apps:
- MAIN action
- LAUNCHER category
- FLAG_ACTIVITY_NEW_TASK
- FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
Without those settings there were discrepancies between Selendroid and
Android when trying to bring the app back to foreground: it would not
bring back the existing Activity stack but create new activities

Adapt background code to new startApp signature

Added "retry" argument

Missing space

Spaces after if

Fixed spacing issue

Split long line
Merge pull request #1762 from mobiware/background-android3

Implementing mobile:background command for Android and Selendroid