extension: Introduce the pa_extension class

pa_extension is an abstraction layer that allows the "core" of
libpulse (mainly pa_context) to manage the extensions without needing
any extension-specific code. This patch only implements the
pa_extension class, the class isn't used yet.
context: Manage extensions
tizen-volume-api: Implement client-side connection management

tizen-volume-api is a protocol extension that provides a better volume
management API for applications. This patch implements the interface
for connecting to module-tizen-volume-api and for tracking the
connection state.
tizen-volume-api: Add pa_ext_tizen_volume_api_bvolume

pa_cvolume doesn't allow storing balance information separately from
the overall volume level, so if the volume is set to zero, the balance
information is lost. "bvolume" tries to solve this by representing the
balance separately from the overall volume.
tizen-volume-api: Add a client API for querying volume controls
pactl: Implement "list volume-controls"
tizen-volume-api: Implement a client API for event subscription
pactl: Subscribe to Tizen volume API events
tizen-volume-api: Implement a client API for setting volume
pactl: Add commands set-volume-control-volume and set-volume-control-balance
New module: module-tizen-volume-api

The module implements the server-side code for handling the Tizen
volume API protocol extension. There is an implementation for all
volume control object operations, but there's no implementation for
the volume objects themselves, so this protocol extension is not yet
actually useful for applications.