A few buffer improvements

 * Cleaned up the output side and spread logic a bit
 * Made Advanced Buffer's spread mode apply to all types of outputs (items, fluids, and energy)

Note: This also adds support for buffers to output fluids/energy to block extenders, which creates the possibility for infinite loops. However, before the changes in this commit, it was still possible to create an infinite loop using a buffer outputting items to block extenders that looped back into the buffer. I will be working on writing a more universal loop protection to fix all of these possible infinite loops.