Reorganize the Tool and Repository class member order.

Review Request #1790 — Created Nov. 22, 2019 and updated

Review Board
imartynov, Some_user
The `Tool` and `Repository` classes have had a lot bolted onto them over
time, and this has led to a mess. Constants, class attributes,
Properties, public methods, private methods, special double-underscore
methods were shuffled around, making it a bit less clear where anything
should go.

This change reorders them so they're in our standard member order. This
may make some merges a bit difficult short-term, but will help keep
consistency long-term as repository functionality grows.

Testing Done:
Unit tests pass.

Reviewed at