Fix potential chmod failures

1) ensure_directory: only chmod if directory exists or is created
2) nandroid_backup: if the backup is stored on a different volume than
/sdcard, then these chmod commands will fail. Correct the backup paths.

Change-Id: Ia54c27fdf861c90a4de86346893f334420060090
Add a copy of the updater binary to the recovery resources

* We may need to force the use of a compatible binary if the one
in the update package is suspected to be bad

Change-Id: I71505de51a9600c08ccfe8639385a7b2f2bfe2a2
install: Support downgrade scenarios

Android 4.4 changed the in-RAM format of the property data, making
update binaries built with older versions unable to read it. This
makes any attempt to read a property return empty, and fail any
prop-related assertions.

If we identify an attempt to run a binary that has a common pre-4.4
edify command ("set_perm_recursive") but not one of the new ones
("set_metadata_recursive"), assume it's a pre-4.4 binary and replace
it with a builtin fallback

Change-Id: Ic483c816d772c32266585b669f59c66e77afcebb