Initial support for Broadcom VideoCore / BCM21553

This commit adds Broadcom support for:
* system/core

Enable via:
* BOARD_USES_BROADCOM_HARDWARE := true
* COMMON_GLOBAL_CFLAGS += -DBCM_HARDWARE

Change-Id: I37e8250a5366e9fbd0de132c042dc7be680da82a
Add mknod support to init

Takes the following arguments:
mknod name, type[b/c/u/p], mode, major, minor

Based on implementation from:
https://gitorious.org/openaos-cyanogenmod/device_archos/commit/79da8a8

Change-Id: If8bb181d60c02949ef3be753f63d0f148e05164f
init: enhance charging/recovery support via kernel cmdline

New BoardConfig options:
* BOARD_CHARGING_CMDLINE_VALUE_RECOVERY - value exported by kernel
  cmdline to signify that we are in recovery.
* BOARD_CHARGING_CMDLINE_NEEDS_FS - indicates that charge mode requires
  a fully mounted filesystem in order to function correctly.
* Handle cases in which BOARD_CHARGING_CMDLINE_VALUE_RECOVERY is set
  and TARGET_NO_SEPARATE_RECOVERY := true. This means that we need to
  share a ramdisk between CWM and the regular boot, so ensure that init
  loads "/recovery.rc" & reads properties from "/default.prop.recovery"
  when in recovery mode.

Change-Id: I80d3cbe2d2aa28471ef15133e8a5caf5fcde94e1