Fix: Pathspec Memory Leak

`Pathspec` is using `regex_t` from `regex.h` but didn't clean up after himself with `regfree()`. Furthermore this required the addition of a custom copy c'tor and assignment operator to properly deal with this internal state.

Additionally I added two unit tests to check the copy c'tor and the assignment operator.
You can safe a few lines of indentation by turning the condition around: `if (this == &other) return *this`