EOL-ify all the things

- Adds `ui.writeLine`
- Removes `\n` from `ui.write...` calls and `SilentError` messages wherever possible
- Swaps `\n` for `EOL` everywhere else

There are probably mistakes, but wanted to get this out there just in case anyone else is working on it.