Better typecasting when building SObjects

Cast values based on their declared Salesforce FieldTypes when building SObjects from a response.