Update the FTDI interface to be 64-bit compatible (#19105)
Fixes #19028
### Summary of the issue:
Papenmeier braille displays don't work with 64-bit NVDA.
### Description of user facing changes:
Papenmeier displays should work again.
### Description of developer facing changes:
* `ftdi2.py` has been moved from `miscDeps` into `nvda`, and
significantly refactored.
### Description of development approach:
* [x] Copy `ftdi2.py` from `miscdeps/python` to
`source/ftdi2/__init__.py`
* [x] Reimplement `ftExceptionDecorator` as a ctypes `errcheck` function
* [x] For each of the `_PY_*` functions, look up the corresponding
function in the [D2XX Programmer’s
Guide](https://ftdichip.com/document/programming-guides/) (revision 1.6)
and implement the corresponding ctypes prototype in `ftd2xx.py`
* [x] Convert enumerations to actual `Enum`s, and move to `ftd2xx.py`
* [x] Verify struct definitions
* [x] Rename the various pythonic functions and methods according to NV
Access' house style
* [x] Update the copyright headers and docstrings
* [x] Compare the old `ftdi2.py` wth the new `ftdi2` package and
document API differences
* [x] Remove `ftdi2.py` from miscdeps (PR nvaccess/nvda-misc-deps#46)
* [x] Update miscdeps
### Testing strategy:
Asked affected users to test try builds.
### Known issues with pull request:
None
### Code Review Checklist:
- [x] Documentation:
- Change log entry
- User Documentation
- Developer / Technical Documentation
- Context sensitive help for GUI changes
- [ ] Testing:
- Unit tests
- System (end to end) tests
- Manual testing
- [x] UX of all users considered:
- Speech
- Braille
- Low Vision
- Different web browsers
- Localization in other languages / culture than English
- [x] API is compatible with existing add-ons.
- [x] Security precautions taken.
---------
Co-authored-by: Michael Curran <mick@nvaccess.org>