Refactor CheckNot directive.
Added basic support for CHECK-NOT-L: directive.
Add test to check that having a CHECK-NEXT: following a CHECK-NOT-L:
is considered invalid.
Added test cases for mixing CHECK-NOT: and CHECK-NOT-L:

Although it might be desirable we can't support this right now
because internally we try to merge adjacent NOT directives together.

This doesn't work here. We would need some sort of promotion where
CHECK-NOT-L: directives get promoted to CHECK-NOT: directives...
this would be a pain to do. User's can easily work around this by
just using CHECK-NOT or CHECK-NOT-L exclusively in a region.