Define WebFM API in webidl
Build fmradio with b2g, remove dom/fm
Add marionette tests for WebFM
Call hal layer to get FM HW status
Add PFMRadioRequest Definition
Define FMRadioRequest class and init them in ContentParent/Child
Add inner class FMRadioRequest
Make parent threadsafe
Define FMRadioRequestParams to distinguish different request
Add cycle collector for FMRadioRequest class

And implement more interfaces for FMRadioRequestParent.cpp
Remove RequestType
Handle request in RequestParent, and define several Cancelable Event
Fix crash bug

FMRadioRequestParent is hold in CancelableRunnable, we can not delete
it when DeallocPFMRadioRequest
Implement enable/disable/setFrequecy in FMRadioRequestParent
Add PFMRadio.ipdl

Init PFMRadioChild when mozFMRadio is initialized.
Fix linking error: error

undefined reference to 'mozilla::dom::fmradio::FMRadioChild::cycleCollection::UnlinkImpl(void*)'

undefined reference to
'mozilla::dom::fmradio::FMRadioChild::cycleCollection::TraverseImpl(mozilla::dom::fmradio::FMRadioChild::cycleCollection*,
void*, nsCycleCollectionTraversalCallback&)'
Fix crash bug

Add FMRadioChildService to hold a global FMRadio object for sending
request.
Release FMRadioChild in ContentChild

Don't apply NS_RELEASE in FMRadioChildService
Add FMRadioParentService to do FM Operation stuff
Define FMRadioCommon.h