use TileBuffer to not get the tile all the time

the buffer is refreshed once per second, and is refreshed on every
RefreshConnections() anyway (triggerd by placing or removing any pipe).

Only downside i can think of is taking on average 6 ticks longer to
notice a chunk-unload. (divided by the number of pipes crossing the
edge).
structure pipes are not valid things to path through

without this, it appears that chassi are happy to spit out things in the
direction of a coblestone pipe, and have it eaten.