[FlashFrame] refactor the code for windows, so we don't need to maintain chrome source code (+1 squashed commits)

Squashed commits:

[214a236] [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
[BitmapFontData] handle if the BitmapFontDir switch is a zip file, extract it to a temp directory and change the command line value
package the default bitmapfont.zip into .pak
add special characters menu
[Build] fix assert on debug build