Expose the removal of empty containers (metadata, defs, g) to the chainable interface

The code block taking care of the removal of empty container elements (metadata, defs, g) is the only one that's inlined into the `clean()` method, thus making it impossible to reproduce the complete functionality of this method using the chainable interface (which deserves being better documented btw). I know that this is the same in the original Scour sources as well, but I don't see the the advantage in sticking to the original here.

Also, could you please consider releasing a new NPM package so that one can update the dependencies accordingly? Thanks a lot!

Cheers,
Joschi