Errors will now respect its transaction's ignore state.
When ignoring transactions, related errors will now also be ignored.
The agent can now handle immutable and frozen error objects.
In rare cases the agent gets passed an immutable error object. The agent would then crash when trying to tag the error object with the current transaction. We now handle these errors properly.