Don't send empty pairs, add test framework, fix query results, change error behavior

If you call an operation with a hash that contains keys in some records and doesn't in others, add_batch would add an empty key like this:
```
<sObject>
<id>.....</id>
<Outdoor_Temp__c>57.2</Outdoor_Temp__c>
<Temp_Not_Available__c>false</Temp_Not_Available__c>
<Wind_Direction_degrees__c/>
<Wind_Speed_mph__c/>
</sObject>
```
This makes SFDC throw up when a field has a type of Number.  This pull eliminates adding the key if the value is .blank?.