How do I completely uninstall a custom entity implemented by my module? I need to write an uninstall use-case for my custom entity. I just want to know what operations I should take care of, in order to completely uninstall my entity/module and all attached fields (including custom fields created by Field API).

Should I use hook_uninstall and how should I implement this hook?
The tables declared by the hook_schema() will be automatically remove when you uninstall your module. 

If you need to remove other tables or variables use the hook_uninstall()