Calls through to has_value. If has_value[0] is True, return has_value[1] otherwise returns
  fallback() if fallback is callable, else just fallback.

  :obj: the object to pull values from
  :name: the name to use when getting the value
  :fallback: the value to return when has_value(:obj:, :name:) returns False

def get_value(obj, name, fallback=None):
  """Calls through to has_value. If has_value[0] is True, return has_value[1] otherwise returns
  fallback() if fallback is callable, else just fallback.

  :obj: the object to pull values from
  :name: the name to use when getting the value
  :fallback: the value to return when has_value(:obj:, :name:) returns False
  """
  present, value = has_value(obj, name)
  if present:
    return value
  else:
    if callable(fallback):
      return fallback()
    else:
      return fallback