## Description:
Current sensor updates run 7 additional SQLite database queries to populate attributes, on top of the bus schedule queries themselves. Double that if you have two sensors. That leads to a lot of slowdowns for everything else when using an SD card!
Considering that some data never changes (agency, routes...) and that others like departure times are good until invalidated, let's fetch such metadata at first then only when relevant changes do occur.
**Breaking Change:**
GTFS sensor attributes are now named using the standard snake_case format.
### Work performed:
- All metadata queries are now cached.
- Metadata queries are now all regrouped in the `update()` method.
- Attributes assembling is now done in ~~`device_state_attributes()` where it belongs.~~ in a utility method called from `update()`, for code clarity and since there is potential I/O from SQLAlchemy.
- As a bonus, many metadata entries with cryptic values have complementary entries added that provide easier to use data:
- .\* Stop Drop Off Type: .\* Stop Drop Off Type **State** -> (string, unknown)
- .\* Stop Pickup Type: .\* Stop Pickup Type **State** -> (string, unknown)
- .\* Stop Timepoint: .\* Stop Timepoint **Exact** -> boolean
- .\* Station Location Type: .\* Station Location Type **Name** -> string
- .\* Wheelchair Boarding: .\* Wheelchair Boarding **Available** -> (boolean, unknown)
- Route Type: Route Type **Name** (string)
- Trip Bikes Allowed: Trip Bikes Allowed **State** -> (boolean, unknown)
- Trip Wheelchair Access: Trip Wheelchair Access **Available** -> (boolean, unknown)
- Attribute names are now using snake_case.
- Added type hints.
**Related issue (if applicable):** fixes#21222
## Checklist:
- [x] The code change is tested and works locally.
- [x] Local tests pass with `tox`. **Your PR cannot be merged unless tests pass**
- [x] There is no commented out code in this PR.
* Consolidate
* Fix tests
* Update imports
* Fix import
* Use importlib because integration and package share name
* Fix more tests
* Update .coveragerc and CODEOWNERS