Refactor AbstractGridCoverage2DReader

remvoing all direct calls to the variables that assume one layer.

In a separate commit, the bad formatting is fixed, and the hard-to-navigate order is fixed (there was a bunch of methods before the attribute list), nothing else happens there. This way it is easy to see the real changes in the second commit.