Reorder Model's dunder methods

As `Model` has grown, so has its set of dunder methods. While originally all methods were implemented alphabetically--`__init__()` being the one exception--I've decided to group related methods together.

The methods are being placed into the following groups:

* String representation methods
* Attribute access methods
* Rich comparison methods
* Container methods

Closes #7