vold: Honor mount options for ext4 mounts

Change-Id: Ie77e0d402c2c16d544251f7fdaeaad34d030d121
Validate asec names.

Make sure asec names only contain alphanumeric, underscores,
dots, or dashes. Don't allow double dots.

Bug: 12504045
Change-Id: I3dd0350c79327dc91a5a10d5724d85d99814e769
vold: Send UUID with list response

UUID defaults to 0 if not available

Change-Id: I59df514aeffa7d926a31d02589e6ff3031bde79e
Create disk encryption key before framework start

HW based disk encryption creates key in secure side. Key creation
can take sometime to create the key securely. If framework is
started before creating the key, it is possible that framework
requests service from secure side. Secure side can serve mostly one
request at a time. Secure side may reject framework request if key
creation request is still going on. This may cause problem in the
system

Change-Id: I5480ab72a37c02532218a18faaba598a824589fd
vold: Support for moving crypto metadata

 * We have a situation where we need to move the crypto metadata
   from a partition footer to a new place. Add support for this.

Change-Id: I5ccc312f7f062d8a8215530957da9c6283ed7ca5
vold: Allow ASEC containers on an external volume when internal is emulated

Thanks to Pierre-Hugues Husson for the idea in this patch! The initial
implementation called createBindMounts() on all mount points regardless
of whether or not it was the SD card.

Change-Id: Ic2c45d275179099065a10e1e664a08efea66acf1

Conflicts:

	Android.mk
	VolumeManager.cpp