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
Backport 'check_output' to Python 2.6.x

- 'subprocess.check_output' is not supported in Sublime Text 2, as
  it uses an older version of Python (2.6.5). Backport this function
Remove unsupported 'encoding' argument

- 'decode' does not support the above argument in Python 2.6.x.
  Remove this as it's unecessary.
Enable 'shell' in Popen

- In order to garner useful information when an invalid CTags
  string is passed, we need to run the subprocess command through
  the 'shell'. This cause of the issue is described here:

    http://stackoverflow.com/q/22251830/
Make remaining build exception more general

- There are likely special cases that occur in 'ctags_build' for
  which we have no handler. Replace the defunct 'EnvironmentError'
  with a general 'Exception' handler to catch these cases.
Strip all carriage returns from printed errors
Merge branch 'feat/improved_build_warnings' into development