Feature better errors

This PR contains a bunch of improvements to error handling and reporting in Slinky.

* The "library" parts of the code (manifest.rb, compiled_file.rb, etc.) will no longer print errors directly to the console but instead raise errors
* The "application" parts of the code (server.rb, builder.rb) now rescue errors and report them in various formats
* `Slinky.batch_errors {}` can be used to batch errors, so that multiple errors can be reported at once (it's annoying when software only reports one error at a time—this leads to a long process of fix one error, reload, fix next error, reload...)
* There is now *experiment* support for injecting errors into the browser via HTML, CSS and JS. For now, this is gated behind the config option `enable_browser_errors`.