power: quickwakeup: initial driver

This driver allows clients to register code to be called upon wakeup
so that clients can perform specific checks and vote to drop the system
back into suspend without fully resuming if the wake reason was a special
quick wakeup event.

Propagation of (CR)

Change-Id: I791ff02f34b616e6da2b68efc2d4eb4449e5bbe7
Signed-off-by: James Wylder <jwylder1@motorola.com>
Signed-off-by: Jared Suttles <jsuttles@motorola.com>
Signed-off-by: Joe Swantek <w98568@motorola.com>
Reviewed-on: http://gerrit.pcs.mot.com/611835
SLTApproved: Slta Waiver <sltawvr@motorola.com>
Tested-by: Jira Key <jirakey@motorola.com>
Reviewed-by: Joseph Swantek <jswantek@motorola.com>
Submit-Approved: Jira Key <jirakey@motorola.com>
Config Update.
pm8x60: add suspend_again handler Call quickwakeup clients to enable us to perform very small amounts of processing and then to drop quickly back into suspend.
Asynchronous Fsync: FIX long bugged fput after commit https://github.com/dorimanx/Dorimanx-LG-G2-D802-Kernel/commit/16b915bbf7f4dbe87fcd019147b30d3c3fd045a3. Thanks to @dorimanx for bug fixing.