Issue #13554 - Add aria and keyboard a11y to Tab

Initial commit for issue #13554 

At this point, I am only looking for peer review. I have never used bootstrap but I am familiar with accessibility so I wanted to be a good citizen and help out.

This pull request adds proper aria and keyboard management to the Tab component by implementing the following:

* `aria-controls`, `aria-selected`, and `tabindex` to tabs
* keyboard navigation via arrows, and proper focus/ tab index management
* `aria-hidden` and `aria-labelledby` on panels
* `id` for tab added to example, as it is needed for `aria-labelledby`

**Note**: I did *not* add aria-expanded as it is not required for this pattern

I also included the addition of aria roles via JS in case they were left off in the markup. The only required role in the markup is the `tablist` role that is added the `ul`. I feel this will help overall accessibility by not burdening developers with needing to include or failing a11y if not/ incorrectly including. However, I did leave them in the examples in order to raise awareness/ education. I am not sure what the Bootstrap policy is about this.

 If my approach is acceptable, I can continue with proper unit tests, documentation, etc.
```js
switch (key) {
  case 37: // left
  case 38: // up
    $newTab = (index == 0) ? $items.last() : $items.eq(index - 1)
    break
  case 39: // right
  case 40: // down
    $newTab = (index == $items.length - 1) ? $items.eq(0) : $items.eq(index + 1)
    break
}
```