How to add JavaScript / CSS / Less with a custom module

Please note that Magento 2 supports (but currently never uses in the core) JavaScript execution deferring: How to defer JavaScript execution to page has been loaded using "defer" attribute