Support for Driver Variables that don't resolve into numbers, avoiding having to use bpy.data in py-driver expressions.
Motivation: the reason for this patch is to allow people to reference objects, bones, curves... etc from py-drivers.
A patch submitted recently used a property where a function would be more correct Curve.calc_length(), the main reason to do this is that driver-variables can't reference function calls. (See D1810)
Without this Python expressions can use an absolute path, eg bpy.data.curves["SomeCurve"].splines[0].calc_length(), however this won't setup the correct dependencies.
Also its a hassle to always type in the full path and renaming the curve will break the driver.
So this patch allows a driver variable to reference a curve directly, then the expression can read... driver_var.splines[0].calc_length().