Properly canonicalize network_str

I forgot to actually assign the canonicalized representation to
network_str.
Fix tests broken by network_str canonicalization
Don't assume `domain` exists
Spontaneous cleanup
Improve style and conciseness
Improve style and conciseness (part 2)
Improve style and conciseness (part 3)
Improve style and conciseness (part 4)
Improve style and conciseness (part 5)
Fix "improvement"
Improve style and conciseness (part 6)
Improve style and conciseness (part 7)
Improve style and conciseness (part 8)
Improve style and conciseness (part 9)
Improve style and conciseness (part 10)
Add BaseModel.reload method
Improve style and conciseness (part 11)
Fix misspellings
Improve style and conciseness (part 12); fix safe_*

Django's TestCase class runs tests in database transactions. This has
undesirable effects on safe_save and safe_delete because MySQL (and most
other SQLs) don't support nested transactions. The solution is to have
safe_save and safe_delete use savepoints instead of transactions when
tests are running.
Do savepoints better