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.
Same here, if you need a const cast that's an indication that something should not be const, or (in case of caching and such) that you need a 'mutable' field.