Add a missing or in rainbow-delimiters--char-ineligible-p.

Fortunately, it didn't cause any noticeable problems.
Use the major mode's syntax table directly.

So far, we assumed that [] () {} are always the delimiters, and the only
delimiters, we want to highlight. But this is not true. For example, in
Pascal, {} are comment delimiters, and in C++, <> serve as brackets
in template syntax. The respective major modes get this right, we don't,
so rely on them. Code simplification is an added benefit.

Note: currently it's probably buggy and certainly incomplete. For example,
it doesn't respect rainbow-delimiters-highlight-TYPE-p yet.
Restore the ability to disable the highlighting of selected delimiters.

Please note that the new way is not compatible with the old way.
Simplify two ifs by using max in their stead.
Remove an unneeded condition.

`re-search-forward` will not let us go beyond `end` anyway.