New css/less code, full-file updates, url() fixes

- css/less editing: changes are verified and validated, and only sent
  to clients if they matter (no whitespace changes, or invalid css)
- css definitions are loaded from the default css_completions module
- css updates add the css file's relative path to url() definitions,
  updates are placed into a separate 'css:' style element;
  original css file is disabled until save/reload;
- parsed less files saved to css don't contain relative paths;
  updates are parsed and placed into the 'less:' style element;
- both for css and less, whole files are sent as updates, no more
  individual updates and custom 'less-webloader:' elements
- websocket: fix ignoring on_send callback result