Improve error output for failed ctags commands

The current throwing/handling of errors resulting from failed ctags
commands isn't ideal - the messages are not formatted and are often
unhelpful in diagnosing issues. Fix this by making some small
changes:

- Use 'check_output' instead of 'Popen', as this throws an
  exception for failed commands. This is easier to use than manually
  building an exception
- Format the output of errors on Windows machines, by decoding the
  Windows formatted strings and stripping carriage returns
- Other small changes