Added logic to properly treat underscores, dashes and spaces. Fixes #318

This PR addresses behavior observed in issues #318. 

Primarily, handling of underscores and dashes which do not connect words. They either have a space before or after them, or both, as was the case for this bug. 

Additionally, the regex in FromPascalCase was not handling spaces in a string properly. Amended the regex to handle the spaces. It can be improved, given my lack of mastery of .Net regular expression. 

Finally, a few test cases were added to test different combinations of spaces, dashes and underscores.
You can remove `[\s]{0}` matches, as they in this case don't affect the functionality at all.