Refactor: Push schema index/constraint conflict messages down the stack to align with SPI.

Proper messages for these exceptions can only be created within the context of the operation
and below the SPI level so that such users (Cypher) enjoy increased friendliness.
How about I put everything (text and formatting) in the exception and add more state, like an internal enum Reason { INDEX_ALREADY_EXISTS, CONSTRAINT_ALREADY_EXISTS } and then use that logic to formulate the message? Other alternatives are more and more specific exceptions. Keeping the existing set of exceptions is probably easiest on the code base.