Render download templates on frontend

Render the components and theme html parts on frontend.

Components and theme contents exchanged between server and client are no longer in HTML, but in JSON format. Reducing the traffic by 65% on components (6.2KB vs. 18KB), and by 16% on theme (34.6KB vs. 41.5KB).

Initial components was formerly rendered in HTML in the first page load. We didn't lose this functionality. Although, now its data is passed in JSON via data attribute and also rendered in client. Reducing the first page load traffic too.

Templates are precompiled on server and served via a .JS file `app/resources/template/download.js`, which is static, so further requests of this same file by the same client tends to be skipped.