Initial work on porting filters. Placing items in frames is broken. Looks like it's because ItemStack.isItemEqual() is broken, though I could easily be to blame instead.