Add check for panel version for user access codes
I'm reffering to this part of code from `dscKeybusPrintData.cpp`:
```
void dscKeybusInterface::printPanelAccessCode(byte dscCode) {
  if (dscCode >= 35) dscCode += 5;

  switch (dscCode) {
    case 33: stream->print(F("Duress ")); break;
    case 34: stream->print(F("Duress ")); break;
    case 40: stream->print(F("Master ")); break;
    case 41: stream->print(F("Supervisor ")); break;
    case 42: stream->print(F("Supervisor ")); break;
    default: stream->print(F("User ")); break;
  }
  stream->print(F("code "));
  stream->print(dscCode);
}
```

Panel versions `v1.0` - `v1.2` use following _scheme_ for user codes:
1-32: regular user codes
33: Partition 1 duress codes
34: Partition 2 duress codes
40: System master code
41: Partition 1 master code
42: Partition 2 master code

Panel versions `v1.2` - `v4.1` use following _scheme_ for user codes:
1-32: regular user codes
33-34: duress codes
40: master code
41-42: supervisor code

Panel versions `v4.2` - `v4.7` use following _scheme_ for user codes:
PC1616: User 1-48, with 40 being master code
PC1832: same as above, with addition of 49-72
PC1864: same as above, with addition of 73-95
Each user code can be set as duress or enabled/disabled for *1/*5/*6 access.

Source: _dozens of PowerSeries installation manuals thru different versions._
EDIT: my pc1832 correctly accepts codes until access code 75, instead of 72 as manual says ?!? (I'll test how much codes PC1616 accepts).
I dont belive that PC1864 would be able to do 97 user codes (*5 section 98 is for partition assigment and 99 for attributes) as in array order is *5 user75 = 0x81 and *6 user1 = 0x96. So it perfectly fits 95 users as maximum in *5 range and then start with *6.

Or, if saving panel version and reading it afterwards will took memory space which can be useful for other things, maybe just leave master code and remove the othes ones? But having panel version loaded in memory will be nice addition, as for example DSC panels share same features thru panel versions (for example, every panel after version `v3.0` use single group of 8 zones for PC5108 expander and have 16 zone definitions in section 001).

PS: access codes 33-39 and 43+ for newer panel versions are in different _printPanelStatus_, so no conflicts with 41-42 user codes.


EDIT: I did some user decoding, you can view it on my repo. Decoded *1, *2, *3, *5, *6 and *7/Access code for users 35..39 and 43..95 which panel version 4.2+ supports. It works fine but code is little messy, I need to clean it up and write some comments/notes. I tested only with user codes 1-75 which is supported on my panel (PC1832). About code optimizing, Im sure it can be done (like, to have _printPanelAccessCode_ only one time per *action, not twice for range 35-39 and 43-95. I also decoded arming/disarming for same user codes, but didnt implement it yet. I have big problems with overlaping user codes 35-39 as _printPanelAccessCode_ increases every user code by 5, starting with user 35. Only user code 43-95 is included in my repo, with user codes above 75 pending testing from someone with PC1864, but range matches fine.