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, IODBCModel changes triples to quadruples using the default graph while 
  IODBCQueryResultIteratorBackend 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 IODBCQueryResultIteratorBackend 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 iodbcstatementhandler.cpp

* The same hack used for boolean values is used for dataTime and time until we find out why Virtuoso
  looses the fractions of seconds. This also means that queries which compare datetime or time values
  will not work as expected.
