Don't use an upstream parameter

 except where it can be used to help performance.
And then, only use it sparingly
Begin cleaning up protocol

This is also a merge pull.

Spout: https://github.com/SpoutDev/Spout/pull/2215
Vanilla: https://github.com/Vanilla/Vanilla/pull/629

Signed-off-by: Jack Huey kitskub@gmail.com