[SilkFramework] 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

fix hwc silk preference
fix observer list unregister function bug

rename VsyncTickTask() function name
update comment

fix typo for frame number checking

forgot to init the frame count at client side

turn on input resample.
disable hwc vsync at init

rename VsyncPlatformTimer -> PlatformVsyncTimer.
refactor PlatformVsyncTimer.
put hw, sw timer fallback logic at timer factory.

refine platform timer

modify silk preference name

enable silk

update comment

move some vd function from private to public.
modify VsyncObserver TickTask return value.

export VsyncDispatcherHelper.h

modify indent hint
add input dispatcher to vd framework
remove NS_INLINE_DECL_THREADSAFE_REFCOUNTING_WITH_MAIN_THREAD_DESTRUCTION from VsyncObserver

Count the frame number in driver thread

In order to add labels for each frame number, we also need a frame
number in the driver thread, so the monotonic increased frame number
should be moved into the driver thread.

add VDHost assert

fix input register assert

fix build break for ThreadSafeRefcountingWithMainThreadDestruction.h header.

use mozilla/TimeStame instead of int64_t type for vsync timestamp.

add nanosecond for vsync timestamp

Rename Regiser/Unregister and revise the function arguments

1. Register()   -> AddObserver()
2. Unregister() -> RemoveObserver()
3. Use two observer lists and observer pointers to handle always/non-always
   trigger case

move the ipc thread back to VsyncEventParent
call VsyncObserver directly in vsync driver thread.
Bug 987529 - Part 1: Integrate GeckoTouchDispatcher into vsyncdispatcher

For inputdispatcher, we should always trigger it, so we call
AddObserver() only once for each multitouch sequence.
Bug 987529 - part 2: Integrate refresh driver into vsync dispatcher

Integrate refresh drivers on Chrome/Content process into the
vsync dispatcher.
Bug 987529 - part 3: Integrate CompositorParent into vsync dispatcher

Call AddObserver() while we want to schedule the composition. We use
non-always triggered AddObserver() for CompositorParent.
systrace label for silk

add vsync trace timer

fix __LINE__ macro expend

fix print statistic function error