Commit Briefs
rename ibuf arguments to imsgbuf
ibuf is just too confusing since there is also the 'struct ibuf'.
honour TMPDIR
This makes using amused a bit nicer on termux where /tmp/ can't be written (or doesn't even exists.) amused still uses /tmp/ if TMPDIR is not specified.
amused-web: parse POST data in bufio' rbuf
Add a proper upper limit (4096 seems enough for now) and safely NUL-terminate the rbuf. The idea is to later drop the clt->buf static buffer and allocate it on demand only when we need to do (http) chunking.
amused-web: make the filtering work
Generate the HTML for the filter input in js (it's useless to have it there otherwise) and actually filter the entries. It's a basic case insensitive match, but it's a start. To do so, add dispatch event type X: to mark the end of the playlist so js can replay the filtering.
amused-web: add websocket support; send forms via js if available
This allows amused-web to stay in sync using websockets (much like existing amused clients watch `amused monitor') and sends the forms in the background to avoid refreshing the page. Still missing is reopening the websocket, maybe blocking the UI in that case and showing the progress.
amused-web: centralize the imsg handling
Keep a copy of the playing queue, status etc. to render the UI without doing imsg in the render path.
amused-web: split out css and js to their own routes
In the future we could apply some caching to these.