Fix problem with dashes and underscores in branch/tag names

The branch/tag checkouts were failing due to special characters - or _ in branch/tag names. This was due to the regular expression in `SvnResolver.branches` and `SvnResolver.tags` only matching alphanumerics and dots. 

This PR fixes the regex to include all valid word characters as well as dashes. Tests included.

I refactored the `svn list` output parsing to its own method to make testing easier and reduce code duplication.

This is my first real GitHub PR so let me know if I goofed up something.