Refactor all error-related code into new module (`vcard_errors`)

@l0b0 : 
I remember that you have very high standards for your repo history, so let me know if I can rewrite any of these commits so that they’re more to your liking.

I’m still not an expert, but I’ve been learning how to use `git rebase --interactive` for simple history clarification, squashing similar commits together, etc.  Since it’s easier to squash lots of small commits than it is to split a few large commits, I was doing my best to make these commits as small as possible.  Maybe with enough work some “best practices” for commits will start to sink in… ;)