msm: hotplug: Readd suspend max cpus and frequency options

We had this ages ago.

Dorimanx note:
this is full merge but in other locations.

https://github.com/myfluxi/kernel_msm/commit/d19b137942899073170e44fb661cdb38d0d2afff
msm: hotplug: Use load dependent update rates
msm: hotplug: Fix another derp
msm: hotplug: Add suspend_defer_time

* suspend/resume helpers, now we can control suspend delay.
* As name suggest, suspend takes are place after some
  delay when screen is turned off. Default - 5 seconds.
* If user resumes device before suspend_defer_time seconds,
  all cores go online as before but suspend work is
  canceled and rescheduling is not done.
* If screen is turned off and suspend_defer_time is exceeded,
  all sibling cores shut down as before. While resuming,
  all cores go online for downlock duration and hotplug
  resumes working.

* Restructure msm_hotplug_mutex and suspended variables.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>

Dorimanx note:
I have merge all! just with small changes, and adaptations.

Thanks @neobuddy89 i like your style! chat free with me in github :)

https://github.com/neobuddy89/hammerhead_kernel_caf/commit/1beb0b36fdb507f138c4c9275ee4e1f1f48c7c1b
MSM HOTPLUG: Allow to use work delay on Suspend using Power/early suspend.
CIFS Mounting: Better sollution! no dual mounts of emulated folders.