Add some initial higher-level guidelines for complexity and testing

Some background: I think rules that discuss syntax-level style, while important for consistency, are the *last* thing that should be critiqued when reviewing code. A ternary statement may be hard to read, but it's much much more important to spend our energy discussing how to break apart the 200-line method it's a part of first.

I'd like to have the kind of higher-level guidelines that'll help us reign in the app's complexity, get more of it under test, and make it easier to make changes faster. Hopefully the ideas that I've added here can serve as a starting point—they've served me very well in the past.