Changes:

* Added FluidContainerRegistry, which can be used to easily allow custom buckets to be filled with a custom fluid from an empty bucket, without needing complex stuff.
    * This is intended to replace IBucketItem, which is now deprecated.
* Added "FluidKeyCustomiser", for custom Fluid instances to implement to customise the implicit FluidKey that gets created for them.
* Added FluidKey.luminosity, to allow tanks to emit light based on the fluid's light. (Lava uses 15).
* Gave the empty fluid a proper name.
* Added a new field to FluidKey: exactFilter, which is an ExactFluidFilter of that fluid key.
* Optimised AttributeList.addAll when searching the entire block in a specific direction.
* Added fluid compat for cauldrons. (However you can only insert or extract 1/3 of a bucket at a time, so it's not always possible to insert into them with pipes).

Bug Fixes:

* Fixed FluidKeys static init loading worldgen early.
* Fixed various tooltip issues with FluidUnits. 
* Fixed FluidAmount.toLong() rounding incorrectly.
* Fixed ItemInvUtil.move reusing the insertion filter after modifying the inventory.
* Fixed FluidVolume.equals not considering two empty fluids of different classes to be equal.
