* Extract method (isElementBlocked) and add tests
* Add blockSelector argument to snapshot
If blockSelector is passed, it will be matched against the element.
Reasoning: Mutating class names can get messy, so providing another hook
helps keep code clean by using data-attributes instead.
* reuse serialized nodes ids
With this patch, each DOM node keeps its id during its existence. This
allows to apply RRWeb events to previous snapshots if needed.
`resetId` has been removed because it loses its meaning: calling it
would not reset the existing nodes ids anymore, only the new ones.
Since we don't reset the id anymore, we may exhaust the available ids
quicker, but Number.MAX_SAFE_INTEGER (2 ** 53 - 1) is pretty large, so I
doubt this'll cause any problem.
* improv TS typing
The `nAsINode` variable was not very elegant. Simplify this by removing
the cast, and make the INode interface compatible with Node.
* update typings