Fix visibility check for non-HTMLElements
When SVGElements are checked for visibility, they'll fail the check
since `offsetWidth` and `offsetHeight` aren't present on them. The
`clientWidth` and `clientHeight` properties may not be used as they
refer to the inset size of potentially hidden but scrollable elements.
Instead, we can only rely on the bounding check and add an exception for
hidden inputs.
See: https://github.com/focus-trap/tabbable/blob/b9c50fea90d392a409c8055001567c4b5d0cac54/src/index.js#L143-L161