CardOS 5 driver for OpenSC

This change builds upon existing CardOS 4 code to implement a CardOS
5 driver for OpenSC. CardOS 4 and 5 differ substantially. CardOS 5
supports on-card generation and storage of RSA keys up to 4096 bits
in modulus, and ECC up to 512 bits.

With a lot of feedback and guidance from szikora@.
Support large (> 2048-bit) keys.
Add onepin bits to CardOS 4's profile.

When the onepin profile is activated, the ACL of the DF needs to be
adjusted from SOPIN to PIN.
Add brainpoolP512r1.
Set key_info->params.len for SC_ALGORITHM_EC as well.
Export sc_pkcs15init_get_pin_reference().
Inspect file->id to know if we're parsing the ARL of the MF.

Much simpler, easier to understand and allows for the recognition of
MFs formatted with tools other than cardos5-tool.
Provide CardOS 5 with its own decipher routine

Similar in essence to iso7816_decipher(), but uses extended APDUs (needed for
4096-bit keys) and restores a leading zero byte stripped by the card, a
behaviour which seems impossible to circumvent: the card either strips the
entire PKCS#1 BT 2 padding, or just the leading zero.
Support arbitrary key sizes in pkcs15_prkey_decrypt()

Allocate 'decrypted' according to the RSA key modulus length. Fixes
decription with 4096-bit keys.
Support large curves; from @szikora -- thanks!
Implement list_files for CardOS5 cards.