W3C Telephony API implementation.

Implements the latest W3C Telephony API specification found at http://telephony.sysapps.org/
Requires the oFono telephony middleware and the BlueZ Bluetooth middleware for working with paired phones.

BUG=XWALK-1419
Please read http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Access_Control

```
Make data members private, and provide access to them through accessor functions as needed (for technical reasons, we allow data members of a test fixture class to be protected when using Google Test). Typically a variable would be called foo_ and the accessor function foo(). You may also want a mutator function set_foo(). Exception: static const data members (typically called kFoo) need not be private.

The definitions of accessors are usually inlined in the header file.
```

And http://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Structs_vs._Classes
```
Use a struct only for passive objects that carry data; everything else is a class.

The struct and class keywords behave almost identically in C++. We add our own semantic meanings to each keyword, so you should use the appropriate keyword for the data-type you're defining.

structs should be used for passive objects that carry data, and may have associated constants, but lack any functionality other than access/setting the data members. The accessing/setting of fields is done by directly accessing the fields rather than through method invocations. Methods should not provide behavior but should only be used to set up the data members, e.g., constructor, destructor, Initialize(), Reset(), Validate().

If more functionality is required, a class is more appropriate. If in doubt, make it a class.

For consistency with STL, you can use struct instead of class for functors and traits.

Note that member variables in structs and classes have different naming rules.
```