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.