Fix online plan bug with multiple serial summers and certain no-ops

The comments summarize this one. But the take away is:

1) We need to look at even more robust tests, and try to think about what a correctness proof for the plans would look like.

2) There are still many opportunities to make storm plans with fewer bolts. We should take a look at that as we look to squeeze all the perf we can out of storm.
We used sys.error below, and I thought it would be nice to be consistent. If you ask me, I prefer sys.error when you are really signalling a state that can't be handled. I generally like assert, require, and error over throwing the Java exceptions because they cover the three most common cases I see for exceptions.