Allow weights_array to be null in zUnion and zInter

Allow null to be passed rather than an array of weights so an aggregate function (e.g. 'MAX') can be passed to zUnion and zInter without having to fabricate and pass a dummy array (e.g. array(1,1,1..)) of equal size as the number of keys passed. 

As the parameter is optional anyway, there are already checks in place for the case in which weights_array is null.

Also added basic tests for this change.