Bug 1043822 - Support SW Vsync Timer

Use nanosleep to implement SW Vsync Timer
Bug 987527 - Register Vsync monitor to HWComposer

In order to enable/disable the Vsync from mHwc, we should make sure
the order of each command is correct. In this patch, I added an
interface for registering these mHwc callback functions and some
accessor/helper functions for manipulating Hwc Vsync.
Bug 1048667 - Part1: silk preference
vsync protocol and dispatch framework
implement GonkVsyncDispatcher
enable silk
rename StartUp -> startup, ShutDown->Shutdown.
fix if-else indent.
hide nullptr at VsyncDispatcher.h
delete the top level protocol actor at main thread
use nsRefptr instead of scoped_refptr
remove redundant comment
Hwc calls the VsyncDispatcher directly
Hide VsyncDispatcherHost/Client to all module
add refcounting for VsyncObserver
remove the checking for new operation
fix SyncAdd done flag memory corruption problem
release top-level protocol resource at destructor
add thread checking for every VD function
fix VsyncTickTask() comment
provide the direct call for add/remove in ObserverListHelper
add comment for XXXtrigger
change GetVsyncRate() to const function
change the uint of vsync frame number to uint64_t
refactor VD
refactor platform dependent vsync timer
Bug 987529 - integrate CompositorParent into vsync dispatcher