Add BatteryLED library

Introduce batteryled library to update the charging status indicator on
supported devices. Currently, only HTC devices with a green/amber LED
are supported via "TW_BATTERY_LED := htc-legacy", but other LED update
mechanisms can be added by creating a function analagous to
setHtcChargingStatus() and including it in setChargingStatus(). This
library is build-blocked against only supported TW_BATTERY_LED options.

This commit draws heavy inspiration from Tom Hite's commits which
perform the same function for HTC devices. The implementation has
diverged considerably though. Please do recognize his original
contribution which can be viewed at:
 https://gerrit.omnirom.org/5652
 https://gerrit.omnirom.org/5653
 https://gerrit.omnirom.org/5654

Change-Id: Ic9f21997d4c9bc7a0e4a1fa391527770fd439dc0
Build block TWRP with RECOVERY_VARIANT

Enable TWRP to reside alongside other recoveries with the naming
convention: bootable/recovery(-flag). If TWRP resides at
bootable/recovery and a device does not specify RECOVERY_VARIANT, then
it will build like normal. If TWRP resides at bootable/recovery-twrp,
then its makefiles will only be parsed if a device specifies
'RECOVERY_VARIANT := twrp'. This prevents TWRP specific makefile
warnings/errors (notably, missing DEVICE_RESOLUTION) when another
recovery is being built.

Change-Id: I8f02fffcd79c309c7123b9428eedc69af02e126e
toolbox: Only build selinux tools for TW_USE_TOOLBOX

Busybox now includes selinux support, but the current setup
overrides these symlinks with toolbox. This leads to: warning:
overriding commands for target `../recovery/root/sbin/getenforce'

Change-Id: I42c6a31cd4a2fa12c2e411f35c763ba99113f0db