Theresa May says she will 'always stand by' Gibraltar after she was accused of 'caving in' to Spanish demands over the territory.