system/vold: Allow pre-configured device pairs to switch mountpoints

The use-case for this are devices with internal extended storage
(pseudo-SDCard emmc) and an actual microSD card reader.
In CM, we choose to use the microSD as primary storage, and leave
the internal partition mostly unused; some users usually come up with
imaginative and data-destroying ways of working around that.

This allows us to specify a pair of mountpoints which can be
switched from a user preference. For this vold.fstab:

-----
dev_mount sdcard /mnt/sdcard ...<path-to-microSD-sysfs>
dev_mount emmc /mnt/emmc ...<path-to-emmc-partition>
-----

We can add to build.prop:
"ro.vold.switchablepair=/mnt/sdcard,/mnt/emmc"

A persistent toggle (persist.sys.vold.switchexternal), controllable
through CMParts, can be presented to the user to allow choosing
something other than our default as primary storage.

Updated to 4.4 by @Dazzozo.

Change-Id: I612d5948156724c089894ef4fc4063be4f942e95
system/vold: allow Settings to determine if a switchable pair exists

This will eliminate the need for pre-configured device pairs listed
in the build.prop, and display the setting if a pair exists.
This exapnds on commit dc8d157d73fb88ee33b38e724a8aabe7d5e53eee

Change-Id: Ieec1f0b8fce14e974fdc3ae1d48358bf9329b156