FollowBench: A Multi-level Fine-grained Constraints Following Benchmark for Large Language Models