vold: mount ext4 with forced SELinux context

Always mount voldmanaged ext4 partitions with the SELinux sdcard_external
context. For other file systems, this is done via the genfs_context,
but since ext4 supports SELinux natively, it must be set here.

Change-Id: I1364f37018b25d79b1826c85849def64e868d72f
vold: force SELinux context only for sdcard

Google uses this code to mount ASEC as well and we shouldn't force
their SELinux contexts

Change-Id: I873af4dc2309d3d0942ce466b8acf8158abb85ae
minivold: adjustments for vold in recovery

- Mount directly to /storage/ instead of /mnt/media_rw
- Do not attempt to mount ASEC

Change-Id: Icb088a413e07222b302264d10f7c7f2aadfebcab
vold: allow non-vfat devices to be used as ASEC

CM supports alternative file systems (which some devices specify
in the fstab as 'auto').

Change-Id: I7e78fe87a7efc49d6749d5892107085d55156cce
vold: cryptfs: Don't update KDF without validating pwd/key.

Prior to this, the Key derivation function would get
 blindly updated even if the user entered the wrong password.
Now, we only attempt to upgrade the KDF if the pwd/key have
been verified (i.e. after a successful mount).

Bug: 11460197
Change-Id: I0469228cc9b87c47754e8ca3c7146651da177da5
merge in klp-release history after reset to klp-dev
vold: cryptfs: Don't update KDF without validating pwd/key.

Prior to this, the Key derivation function would get
 blindly updated even if the user entered the wrong password.
Now, we only attempt to upgrade the KDF if the pwd/key have
been verified (i.e. after a successful mount).

Bug: 11460197
Change-Id: I0469228cc9b87c47754e8ca3c7146651da177da5
vold: support more than 1 UMS share

Used for devices with both mountable internal and external sdcards.

This is a forward-port and clean up of the 10.2 code (which contains
a lot of deadcode.)

Original authors:

    Alex Zepeda <alex@inferiorhumanorgans.com>
    Genokolar <genokolar@gmail.com>
    Josh Stone <cuviper@gmail.com>
    mik_os <kiril.mik.os@gmail.com>
    Oran Avraham <oranav@gmail.com>
    Pawit Pornkitprasan <p.pawit@gmail.com>
    Tony Layher <layhertony@gmail.com>

Change-Id: I926ce244255414697373d26d252a9da89aea7226
Merge tag 'android-4.4_r1.2' into cm-11.0

Android 4.4 Release 1.2
minivold: adjustments for vold in recovery

- Mount directly to /storage/ instead of /mnt/media_rw
- Do not attempt to mount ASEC

Change-Id: Icb088a413e07222b302264d10f7c7f2aadfebcab
Merge remote-tracking branch 'cm/cm-11.0' into kk