recovery: Add support for performance control

 * Recovery will now set "recovery.perf.mode" to 1 before a
   backup/restore operation begins, and will set it back to 0
   when the operation is complete. It will also do this during
   package installations.
 * This allows devices to boot into recovery in a low-power mode,
   and bring up more cores and adjust other settings. Pigz is
   multithreaded, and enabling all cores vastly improves performance of
   compressed backups.
 * Device maintainers who wish to use this should configure their
   init.recovery script to trigger off of this property.

Change-Id: I174e45215ad1cd34a34b1af4486a64fb6e54134b
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Define paths for recovery settings files in a separate header

Also, use get_primary_storage_path() to define the locations of .no_confirm,
.many_confirm, and .hidenandroidprogress instead of hard-coding /sdcard/.

Change-Id: I50442a226af1d102786c833c0b53c25bf63c67a6
(cherry picked from commit bd0fe453f6ca242f0ed868b4c0934af29d499bba)
Bump recovery to 6.0.4.6

Change-Id: Id2b373e5a356e7eaa8694e5d0300dff860762061
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Merge "Define paths for recovery settings files in a separate header" into cm-11.0
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Hide install icon after success as it is done for regular zip installs

Change-Id: I932a6ecff0fb64913842c1ea4624021b476f7d46
Nandroid menu fixes:
- fix memory overflow bug if vold managed volumes reach MAX_NUM_MANAGED_VOLUMES.
- easier editing: this completes previous two commits to clean up Install Zip menu and Advanced menu

Change-Id: I349cc7b04878b92d902e1ee826d9b4c5bc77cf83
(cherry picked from commit a88b701ccb0733ca5cdd51490b86707c8d19a1f4)
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Free up memory from file menu pointers

* Cleanup sub-filemenu pointers after their results are copied.
* Cleanup file pointers after all operations have been performed on
the file.

Change-Id: Ie6c482c5ffddd7ebebdc99bbe8ae856e53e1405f
(cherry picked from commit 5360b52dba6b120b6e0ba5c775e2a961504a34a3)
Do not modify original items pointer when filtering NULL entries

get_filtered_menu_selection currently modifies the items menu passed
to it. This can be problematic if the items menu is needed later without
any filtering of NULL entries. Instead, let's modify a copy of the items
menu, leaving the original intact.

Change-Id: Ief6f538441ea78fcd8eba3a815354f06bda849a0
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
fix for older recoveries

Change-Id: Ied4023378f6ff8fb03f2f7a763ad262b7b52ee1e
Loki updates:

* update to v2.1 + sync to latest sources
* fix broken LG devices + add new ones
* proper code for recovery
* do not lokify after a failed adb install
* use original loki format sources for easier future updates
* fix all compiler warnings

Change-Id: I4f19edc492a1105c2b91c579f295876a4dc313b2
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
recovery: Fix the configuration of default_backup_format

I believe that this was missed (and therefore broken) in this commit:

commit a46e1bd7b32dc3ab660518a1aeab2f99d1ec518b
Author: philz-cwm6 <phytowardt@gmail.com>
Date:   Sun Dec 1 22:26:45 2013 +0100

    Define paths for recovery settings files in a separate header

    Also, use get_primary_storage_path() to define the locations of .no_conf
    .many_confirm, and .hidenandroidprogress instead of hard-coding /sdcard/

    Change-Id: I50442a226af1d102786c833c0b53c25bf63c67a6
    (cherry picked from commit bd0fe453f6ca242f0ed868b4c0934af29d499bba)

Change-Id: Idee6d712ac55cdd4b2690011a48226af2ed20d96
Merge remote-tracking branch 'cm/cm-11.0' into cm-11.0
Clean up c formatting - 1

There are several inconsistent coding styles in CWM source from years of
contributions. I tried to find parameters for 'indent' which change the
least amount of code but outputs a style most will feel at home with.

Most of these formatting changes come from:
indent -br -brf -brs -cdw -ce -i4 -l160 -nbap -nbc -nbfda -ncs -npcs \
 -npsl -nut -ts4 file.c

Some manual modifications after running indent:
1) a()? b : c    --->    a() ? b : c
2) retain existing pointer definition styles
3) indentation of structs
4) change { } wrapping of cases in switch statements

Change-Id: I7f34a2e769a9a3f397ad36b8e25676424780aa00
su: Update for latest su daemon compatibility

Change-Id: I6d2f36d9f01d7bc6004724458875b3dce850d00e