Как добавить к массиву объектов новый ключ-значение?
Тут наверное проблема с переменной i. Результат $http.get приходит уже после завершения цикла. i=16 и $scope.messages.response[16] не существует. Нужно исходные значения i где-то запомнить. Советую почитать про замыкания в JavaScript, как одно из решений.
Если вам просто нужно добавить элемент в начало массива, используйте unshift.
Если нет - то вопрос непонятен.