[Notification] handle empty body on windows (+1 squashed commits)

Squashed commits:

[ca3f634] [Notification] fix compiler error. missing base:: (+1 squashed commits)

Squashed commits:

[af8b22b] [Notification]fix compile error on linux (+1 squashed commit)
Squashed commits:
[32bc400] compile error fix (+1 squashed commit)
Squashed commits:
[2955c46] [linux] notification implementation (+1 squashed commit)
Squashed commits:
[edb7e83] [WIN] make the StatusTray a singleton, check for the StatusIcon if it has been created before, handle the destruction of StatusIcon and StatusObserver properly (+1 squashed commit)
Squashed commits:
[3a1f53b] [Linux] add placeholder for the desktop notification (+7 squashed commits)
Squashed commits:
[f784e4a] indentation and formatting fix
[c5ef03d] fix the indentation
[d1662e7] [MAC] add version check for the notification image, since it only supported by Mavericks
[18b2d38] [WIN] fix notification manager compile warnings (missing OVERRIDE)
[00177bb] [MAC] implement loading / showing image from url for desktop notification
[e8b8cce] fix compile warning for undefined constructor
[a3d73b2] Move notification image download callback to the parent class, preparation for MAC notification custom icon implementation (+1 squashed commit)
Squashed commits:
[ee010e2] [WIN] implement the icon image display from URL (+8 squashed commits)
Squashed commits:
[4844475] [MAC] implement desktop notification, display event dispatcher
[4c5f445] Remove unnecessary comments
[af4bd7e] Implement notification events dispatcher (close, display, error)
[d6662bc] [WIN] implement windows balloon tray notification, with application icon as the tray icon
[19c8965] [WIN]
AddDesktopNotification, CancelDesktopNotification function prototype adjustment with NotificationManager
[29816f5] [WIN]
implement windows notification
[7191831] [MACOSX]
implement desktop notification event handler (send the click back to java script)
implement "CancelDesktopNotification"
[c5b359d] add notification manager (nw_notification_manager) for desktop notification
implement MacOS notification manager
[FlashFrame] change NativeWindow::FlashFrame input parameter to int, the javascript boolean parameter true redirected as -1, false as 0
[ProgressBar] fix window compile error (+1 squashed commits)

Squashed commits:

[1738c18] [linux] placeholder for SetProgressBar (+1 squashed commit)
Squashed commits:
[8dd41ec] [WIN] implement SetProgressBar for windows platform (+1 squashed commit)
Squashed commits:
[79dca6e] [WIN] implement SetProgressBar for windows platform (+1 squashed commit)
Squashed commits:
[1be7893] [MAC] implements SetProgressBar with value 0 - 1,  value > 1 means Indeterminate , value < 0 will turns of the progress bar. Currently still have problem with animating the Indeterminate state, and the progress bar color is fixed to blue
[Screen Geometry] fix run time error (+1 squashed commit)
Squashed commits:
[29ac0fd] fix wrong merging (+1 squashed commit)
Squashed commits:
[0a0d093] properly call Add/Remove ScreenChangeCallback native function, by counting the javascript listener number (+2 squashed commits)
Squashed commits:
[6e1c7c5] Change the screen geometry event handler to use node.js EventEmitter
move Screen functions from App to seperate Screen class
[23332bf] Implement "Generic" Event listener, with application on Screen Geometry events listener (+1 squashed commit)
Squashed commits:
[372c9bd] add App API to get screen(s) information