Make Get/Have in CCoinsView "const"

This patch makes certain functions (Read/Exists in CLevelDBWrapper and diverse Get/Have ones in CCoinsView and subclasses) const.  IMHO, this is the "right thing" for them, since they represent in fact "read-only access".  This can also be used to make the CCoinsView reference in some higher-level functions (e. g., CheckInputs) const.

Is there a reason why this can't be done?  It should make the code cleaner.  Note that the three commits encapsulate "different levels" in the change here, and only the first two or only the first can be used, too, in case there is a good reason why the full patch isn't appropriate.
I understand your point.  In this case, however, I believe that the "const" is justified - one could simply copy the implementation of the non-const FetchCoins and replace "iterator" by "const_iterator".  I used the const_cast to avoid code duplication - but if you prefer, I can also implement it with a private template routine that can then be used for both the const and the non-const variant of FetchCoins.  Would that be better?