vold: Handle disks with multiple major numbers

Squashed commits of the following:

commit 6a248052c43bd8c05b9485d8144f778e367a988e
Author:	Emilio López <turl@tuxfamily.org>
Date:   Nov 17, 2011 12:47 AM

    Reintroduce BOARD_VOLD_EMMC_SHARES_DEV_MAJOR

    Code taken from CM7's vold

commit e8caab58ea2992e884fddd4e310ecaf2bf489f37
Author: codeworkx <daniel.hillenbrand@codeworkx.de>
Date:   2012-01-04 16:49:50 +0100

    DirectVolume: handle discs with multiple major numbers

    CFlag: BOARD_VOLD_DISC_HAS_MULTIPLE_MAJORS

    Allows Direct Volume to handle discs with multiple major numbers.
    Needed on Samsung Galaxy S II and variants.

    For example:
    mmcblk0p1 - 179:0
    mmcblk0p2 - 179:1
    mmcblk0p3 - 179:2
    mmcblk0p4 - 256:0
    mmcblk0p5 - 256:1

commit eda64d531e882c46baf88d41a8d3a04874a795e6
Author: codeworkx <daniel.hillenbrand@codeworkx.de>
Date:   2012-04-19 10:50:22 +0200

    vold: fix handling of discs with multiple majors on DirectVolume::getShareDevice()

    The method DirectVolume::getShareDevice() returns an invalid device if the partition
    referenced by mPartIdx is bad. A bad partition is one where the major/minor numbers on
    disk don't match what is expected.

    The original major number is stored for bad partitions so the fix attempts to
    retrieve it and return it if applicable.

    This fix is one part of fixing ICS encryption on the i777 (and possibly other devices)
    where bad partitions may exist.

Change-Id: Ibdb05126144adb483c590dec425967362b8af91a