Unsupported operand types
The problem here is that in the given file, the line

$field['settings'] += field_info_field_settings($field['type']);


fails (i.e line 479), because field_info_field_settings() doesn't return an array. This shouldn't happen and it is probably caused by a custom or contrib module or by faulty data in your database.

You can try to trace the error down. Open field.info.class.inc in a text editor and put the following code directly above the line 479:

$field_settings = field_info_field_settings($field['type']);
if (!is_array($field_settings)) {
  print_r($field);
  die();
}


Then load a page where you would normally get that error and look at the printed details (I hope there are any). Then ask yourself the following questions:


For which field are the settings requested?
Does this field still exists?
Is it a field declared by a module that you have disabled?


This should help you to trace down the problem.

Remember to remove the debug code!