Implement base::PowerMonitor::IsOnBatteryPower() for OSX.

For whatever reason this was never implemented; this is slimmed
down variant of the implementation in devices/battery/.

During this process I noticed the initial status for "is on
battery power" is incorrect. On Android, ChromeOS the initial
state is later supplied by Java and DBus respectively. On
Windows it was using a OneShotTimer. This replaces the Windows
implementation with a new protected setter which can be used
by the device source implementations to set the initial value
before a PowerMonitor exists.

BUG=649166
TEST=OSX properly detects battery changes. Initial state correct.

Review-Url: https://codereview.chromium.org/2351593004
Cr-Commit-Position: refs/heads/master@{#421350}
8 files changed