Added quartz gates and chipsets.

Quartz gates act like gold gates with 2 exceptions:
They can connect to all pipe wire types.
There are 3 additional gate triggers that function as timers.

The timers have a short, medium, and long mode which can be set via config.
Clean up Recipe API
Random Pipe API musings
Merge branch 'master' into marmot
Merge Timer into Marmot
Added colorRenderCache to refinery filter slots
Cache Traveling Items

There existed a race condition where either the client could pass an
item from one pipe to another (with intact ItemStack NBT data) or a
packet could arrive from the server to inject the item into the pipe
(without NBT data). This resulted in incorrect Icons being occasionally
displayed for a moment for Items that use NBT to determine the Icon
(Forestry Bees/Trees).

To eliminate this race condition, all Traveling Items are now cached
(weakly) and ItemStacks are no longer sent as part of the Traveler
Packet. The client must instead request the ItemStack from the server.
The bonus being that the ItemStack (NBT and all) needs only be requested
when it first enters the network.

This also has the affect of further reducing bandwidth usage by Item
pipes, though it should be noted that Item pipes where already the least
bandwidth intensive pipe.

Additionally I rewrote the Item Grouping code. I'd never looked at it
before, but I figured I should make sure it properly maintains the pipe
state after grouping. What I found was 200 lines of wtf code that was
horribly outdated and broken. I replaced it with 20 lines of code that
are less dependent on implementation details of how pipes work. -.-
Merge pull request #1353 from ItsMeElConquistador/marmot

Added colorRenderCache to refinery filter slots
Allow water springs to be disable independently of everything else
First Iteration of Gate Rewrite

GateKind enum is gone, replaced with two enums: GateMaterial and
GateLogic.

Pulsars and Timers are abstracted into GateExpansions that can be
applied to "upgrade" a gate. (Incomplete)

GateExpansions will eventually be moved to the API so that other can
define new expansions easily.

GateExpansions are not currently serialized or synced to the client.
This remains to be done.

Legacy migration support is included, but untested.

Currently only the base logic texture layer (white/black) are being
rendered. Eventually the material and expansions will each render an
additional texture layer onto the gate.
Remove Fluid Motion Event, they cost too much CPU

And I'm told they are going away in the future.
Some more minor optimizations
Extract GL.color(int color) for unpacking hex RGB

Centralizes all the unpacking of hex RGB values from an integer to a
single call to GL11.glColor4f.
Merge pull request #1359 from dgtized/extractGLcolor

Extract GL.color(int color) for unpacking hex RGB
Fix Engine dupe

Closes #1361
Merge branch 'marmot' of https://github.com/BuildCraft/BuildCraft into marmot
Wrenches shouldn't stack
Notify player of inv changes when filling
Fix Gate Rendering

Layers!
Add additional support for Gate Expansions

Things left to do:
-Sync expansions on the pipe to the client
-Rewrite Assembly table to support modifying Item NBT so you can add
expansions to Gates