Added a check for the fields primary storage column as it's not always 'value'

The findBy method assumed a field 'value' for storage. This change gets the primary column for the field and checks that instead.
@stewsnooze I am not sure how we can use that comment as something actionable. Do you have a code suggestion?

@Dan-Ashdown-FFT I would prefer it if the code looked like this:

````
protected function getColumnForField($field_name) {
   $field_info = field_info_field($field_name);
   if ($field_info) {
      return current($field_info['columns']);
   }    
   else {
      throw new EntityDecoratorFieldNotFound(get_called_class() . " has no field method called " . $field_name);
   }
}

public function findBy($field_name, $value) {
    if (is_array($value)) {
      $operator = 'IN';
    }
    elseif (is_scalar($value)) {
      $operator = '=';
    }
    else {
      throw new EntityDecoratorUnsupportedArgument('EntityDecoratorFinders can only take scalars and arrays as arguments');
    }

    if (count($value)) {
      // Is the field a property?
      if ($this->isProperty($field_name)) {
        $this->query->propertyCondition($field_name, $value, $operator);
      }
      else {
        $this->query->fieldCondition($field_name, $this->getColumnForField($field_name), $value, $operator);
      }
    }

    return $this;
  }
````

The advantage of this is the logic is encapsulated in a single method that we can change if it turns out the logic is more complex. You also need to update orderNy too.