fix segfault during shell nandroid backup/restore commands

Previously, to achieve a successful "adb shell nandroid backup" and
"adb shell nandroid restore [backup_path]", we have to disable
progress bar by manually removing '/sdcard/clockworkmod/.hidenandroidprogress'

Else, the recovery would crash with segfault

This patch disables progress bar update whenever ui is not initialized
adb shell nandroid backup/restore commands now work without any background hack

Change-Id: I525ceffffb1bad4ee8e62c3985e123dcda77c79e
Fixup nandroid-md5.sh with legitimate return code

The reason md5sum would return an error status code is because it was
being executed on . and .. paths. Only run md5sum on files and allow the
script to exit with an error status if md5sum fails.

Change-Id: Ieeaa5e65ab3cf6b6470815c3ec13cd3a8c8b6b5e
Only chmod backup/blobs directory if it exists

Change-Id: Ib1e250e8f77d84048a176f6ea896439a0454c512
enhance the progress thread update

- limit refresh interval to 200 msec for nandroid operations
- keep the progress background icon overlay updating for normal and
  indeterminate progress
- no more need to increment background icon overlay frames by caller

Change-Id: I643e30505f962ebbf67aae57baa06a296006e542
Refresh nandroid progress without on-screen text

* Remove display of files to ui - this was severely slowing backups
* Remove ui_nice functions since they are no longer used

Change-Id: Iaa8b6bc3989752016b296e6f087c64fc216e5f00
Enable cmdline nandroid backup of vold volumes

Issuing 'adb shell nandroid backup' just after recovery has started on a
device with vold managed primary storage will fail because vold has not
initd for nandroid. Let nandroid call vold_init. Subsequent calls to
vold_init should be of no concern since sock will be set and
vold_client_start() will return immediately.

Change-Id: I88b16ff0a8c5b058b58f81095f63374bfbf70b34
Progress thread: less aggressive redraw

In commit I643e30505f962ebbf67aae57baa06a296006e542 , 'enhance the
progress thread update', I incorrectly amended philz-cwm6's commit to
work around a theoretical issue of keeping the installer's spinning
cube rotating when no progress bar is shown. While my amendment works,
it keeps the progress_thread updating text and overlays even when
sitting at the menu. This is overly aggressive. Change the update
mechanism to only apply when the background installer image is visible.

Also, make ui_increment_frame() static since is is local-only now.

Change-Id: I2fa2f8a0704f562fb027ba4bee9b1b7d278da404
stop showing the background icon progress outside it's scope

Also, extend print_and_error() to act as a pass-through, returning the
original error code.

Conflicts:
	extendedcommands.c
	nandroid.c
	nandroid.h

Change-Id: I3d7ee71f627f871f64defe7902b91b762ca97d59
Merge remote-tracking branch 'cm-11.0/cm-11.0' into cm-11.0