Colin Powell officially endorses Barack Obama