Reimplemented the BackendFactory using dlopen
This is completely platform dependant (Will not work now on OS X). But
simplest quick and dirty solution for the moment.
One could consider to use Boost.Reflection library to make it
cross-platform.
amarsi_closes #316
amarsi_refs #319