str(LRValue(None)) now returns 'v[]' instead of 'v'.

This is part of our process of removing 'v' from existence.
Merge branch 'master' of http://github.com/DanielSank/pylabrad
Re-introduced __new__ method on WithUnit to allow proper class finding.

Peter removed this to try to simplify things, but this introduced a bug:
When we eg. multiply a float by a Unit we need to be able to figure
out what type to return. In this example it should be Value. This is
determined by WithUnit._findClass and used in __new__.
LRValue.unit cannot be None

We use '' to indicate dimensionless numbers as this more closely resembles the original LabRAD spec.
Unit tests now pass*.

*except for one unrelated to LRValue. There's still a problem in that the flattening code looks at the first element of arrays to figure out what type of array it has.
This causes problems if subsequent elements in the array are incompatible with the first element.
Added ability to execute as main.