Expand upon getInventory

Now a boat can have any sort of block data associated with it, it can be
nothing, it can be a number, an IInventory, an IFluidHandler, some
energy stuff, or any combination and permutation of the above!
Also add TNT  boats
-Description written by @viliml .