MAJOR changes, in this commit the Client architecture is fully switched
to be distributed, now clients only send a query to the Client
and the Client parses the query and determines what nodes that query
should be sent to. I'm adding a new file DDBPartitioner which is the
class that keeps track of the partition data. It is fully tested on the
wings cluster. You can test the individual commands via the unittest
class I created in the DDBPartitioner file. Also the SQL statements
found in that UnitTest have been run on the cluster and are known to
work.

CAVEATS:
1) Currently you must create all your tables everytime you start the
Client, nothing is persistant
2) You must delete the /home/hduser/test.db file between every start of
Client so that an attempt to create a table will not fail (if we fix 1
then we can remove this)
3) You can only use ORDER BY or LIMIT keywords if you also include a
WHERE clause in the query "select * from test limit 1" is NOT VALID
where as "select * from test where 1 limit 1" IS VALID.