CustomGUIHandlers implements IGuiHandler (should be able to use 1 handler for all furnaces/machines/etc by checking for the ID first)
OPTIONAL BUT BETTER IF YOU DO IT: SlotCustomSlot extends Slot (Allows you to discriminate between what items you want allowed and not allowed in your custom furnace)
ALSO OPTIONAL, BUT BETTER IF YOU DO IT: Create a custom recipe handler or even a class with returning integers / itemstacks etc. Here is an example for my custom recipe handler, but it is a pain with if statements in the canSmelt() section of the tile entity and the burn time updating etc,
I finally learned how and to understand it pretty well from Grovesy's and VSWE's tutorials on this matter, and then some extra tidbits from online for specific functions I wanted, and finally just some basic logic/if statements for other parts (such as the recipes)
I tried to iook around for video tutorials for 1.8, but I wasnt able to.
Yes, one of the reasons I haven't tried porting my mod over to 1.8 yet, because I am relatively new to using NBT + packets for my custom rendering, and I have a custom recipe handler, and a bunch of other custom modifications, so I don't want to deal with the hassle for right now until I can find some more knowledgeable and well explained videos or EXTREMELY in depth text explaining at least the changes.
Nealegaming helped me make my first tile entity with a gui a year ago. You'll slowly understand it more, the more you see and do and be able to make it more complex. I recommend his tutorials for anything that he covers