add generic suspend backoff driver

This originally was in the wakelocks implementation for
apq8064 devices and older Android devices, but was removed
in KitKat for 8974 and newer devices.

Reimplement it in a more generic fashion, as:
1)  Wakelocking is better than suspend thrashing if suspend
is constantly aborting
2)  It spams dmesg less when suspend thrashing occurs

Change-Id: I62ee8debbd910e920d240a96cc38f1fd0a554898