Add support for modular backends

Link tgtd with -E so all symbols are available for runtime linking
by dynamically loaded objects.
Build some modules, such as bs_{aio|rbd} as shared objects and
install them under /usr/lib/tgtd/backing-store
Add support so that when tgtd is started and initializes the backends
it will traverse /usr/lib/tgtd/backing-store and dynamically load
all object files.

This allows to build and distribute backends as separate packages than tgtd.
TGTD can be shipped with only base dependencies and basic backend support
and then those backends that include extra dependencies can be shipped
and installed separately.

Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>