Add a fingerprint based on callstack and shorten source file paths

Currently if an error message has a variable part, multiple occurrences of it will show up as many unique errors in rollbar ui.

This change improves on that by calculating and sending a fingerprint (as described in https://rollbar.com/docs/guides_grouping/) based on a callstack, which is unique within a particular build of the app.

It also shortens source file paths sent to rollbar to make them shorter and remove the part of the source file path that depends on the machine on which the code was compiled. It also helps in building the above fingerprint.
The problem with not using line number is that if there are 2 Error() calls in the same function, they'll be falsely grouped as the same error.

I agree that it's not good that changing the code would make some errors unique (as noted in the comment) but I haven't found a way that is both automatic and avoids false grouping of unrelated errors.

For my needs I'll stick with this version to get a feel how it works in practice.

That being said, feel free to remove the line number from checksum. Either way is an improvement over current situation and I understand that neither way is better in every aspect.