Virtuoso backend based on libiodbc

There are some hacks in this backend:

* Virtuoso/SPAURL has no notion of the empty/default graph. Thus, it is not possible
  to add statements to the empty/default graph. We work around this problem by
  introducing a special default named graph which is used internally to store triples.
  Thus, VirtuosoModel changes triples to quadruples using the default graph while
  Virtuoso::QueryResultIteratorBackend converts the default graph back to an empty Node.
  This should work fine until someone decides to use exactly that URI in a db.

* Since Soprano's query system is amazingly simple (only strings) we do not know
  the type of query (bindings/graph/boolean). Virtuoso also does not provide this
  information. Thus, in Virtuoso::QueryResultIteratorBackend we do some guesswork based
  on the column names (__ASK_RETVAL for boolean queries and the very shaky callret-0
  for graph queries).
  This should work all the time but still needs to stand the test of time.

* Virtuoso has a set of virtual statements which must not be removed. Since these are
  added at startup, an empty database already contains roughly 1200 statements in one
  named graph. The backend filters out this one graph in all methods.

* Virtuoso does not make a distinction between boolean and integer (actually all signed and
  unsigned decimals are integer). Thus, we introduced a fake datatype and in iodbcmodel.cpp
  boolean literals are converted to literals using the fake datatype: a non-empty string 
  means true while an empty string means false. This is converted back in odbcqueryresult.cpp
