Support for custom messages in contracts

Something I found limiting about Decontractors is the situation where you have several @Precondition on a function, and one of them fails. You have no information about which one failed. This patch allows you to add a message to each Decontractor, in order to make easier figuring out which one failed.