Fix memory leak and improve error handling when enabling/disabling the SleepDisabled setting.
Don’t call super::start twice in our start method.
Add power management code and define a single power state for the driver that prevents idle sleep.
Create DLOG macro to simplify DEBUG logging.
Start the registration process for the driver.
Add notifier so that we can respond to clamshell events.
Only enable clamshell sleep on unload if we have a clamshell.
Use #define to shorten class name
Detect if anyone tries to change the SleepDisabled property.

When the SleepDisabled property is updated by calling SetProperties, the IOPMrootDomain
updates its properties with the current value.  We look for this change by replacing the OSDictionary
used to store the properties with our own that notifies us when the SleepDisabled property is
changed or deleted.

The replacement of the existing OSDictionary with our custom dictionary is done while holding the
property lock of IOPMrootDomain object.  This is done by calling the runPropertyAction method on
the IOPMrootDomain.  The custom Dictionary object is then created by copying the existing
properties.

The original OSDictionary is retained by the new Dictionary and changes are made to both.  This
simplifies the restoration of the original property table if the driver is removed.
Merge pull request #1 from baskingshark/updates

Bug fixes and updates