LINARO fixes for better ARM support. + small code corrections.
workqueue: Massive update (better CPU managment)

Changelog:
1. hashtable: introduce a small and naive hashtable
2. workqueue: use new hashtable implementation
3. workqueue: fix find_worker_executing_work() brekage from hashtable conversion
4. workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues
5. workqueue: Add system wide power_efficient workqueues
6. workqueue: drop CPU_DYING notifier operation
7. workqueue: ROGUE workers are UNBOUND workers
8. workqueue: use mutex for global_cwq manager exclusion
9. workqueue: drop @bind from create_worker()
10. workqueue: reimplement CPU online rebinding to handle idle workers
11. workqueue: don't butcher idle workers on an offline CPU
12. workqueue: remove CPU offline trustee
13. workqueue: simplify CPU hotplug code
14. workqueue: set delayed_work->timer function on initialization
15. workqueue: cosmetic whitespace updates for macro definitions
16. Add missing static struct delayed_work bw_sample; to cpubw-krait.c
17. workqueue: make deferrable delayed_work initializer names consistent
18: workqueue: Remove panic
19: lockdep: fix oops in processing workqueue