Defines an element that can be disposed,
typically to free some temporary allocated resources when the element is not to be used anymore.
The standard pattern is the code that instantiates a Disposable object
is also in charge to dispose() it, typically in a try/finally block.