Remove every use of "mutable" in ACTS
As merge request !247 (closed) is getting too big, I propose to break it down in smaller iterations. Intermediary merge requests will feel less satisfactory (for example, this iteration adds lost of const_casts and non-const accessors), but they will also be much easier for me to maintain and for you to review.
What this merge request does:
- Remove every occurence of the "mutable" keyword in ACTS
- Replace many const-incorrect method signatures (e.g. const setters) with const-correct ones
- Eliminate const-hostile patterns such as lazy initialization
- Deal with const-incorrect use of pointer-to-const by using const_cast and const_pointer_cast
What will wait for a later merge request:
- Replace const-incorrect pointers with const-correct ones, thusly eliminating const_casts
- Replace some terrible interfaces (e.g. accessors returning non-const references) with better replacements
This fixes ACTS-256.