Ensure that protocol failures kill circuits
Right now, some protocol failures at the circuit level don't cause the circuit to get killed. We should make sure that happens, by auditing every error that we can give from the circuit/stream code, and linking it to a circuit destroy as appropriate.