BP faces storms of protest at annual meeting