don't use non API BC (part 1)

use API.IPipeTile rather than TileGenericPipe
don't create an EntityPassiveItem just to create a RoutedItem with it,
as a RoutedItem is an EntityPassiveItem.

make the bcProxy a bit more consistant, the world object is always first
when creating a routedItem.

long term aim; minimal need to use BC code.
further Pipe->IPipe changes

mostly tile.pipe becomes tile.getPipe();

LogicSupplier no longer filters out wood engines; if that is an issue, a
seperate bug will be filed and checked - items without an inventory
shouldn't be able to be sunk into anyway.

These Tile.pipe->ITilePipe.getPipe() changes were done to minize the use
of the potentially private inner pipe member of the container class.
(Basically i'd like to only access the TileGenericPipe through it's
interfaces).
further Pipe->IPipe changes

also added some comments about which imports we can't ignore.

removed check for '&& ((TileGenericPipe)this.container).pipe.transport
instanceof PipeTransportItems' from EntityPassiveItem, it should never
trigger, as that would mean a routed item ended up in a pipe without
itemTransport (ie, liquid, or power pipe)

demoted GUI to passing around IPipes rather than full ones; we only need
the actual pipe for the block coords anyway.