UK to announce cap on non-EU migrants