Refactoring of the asn1 module

The following changes are included:

- Decoding is a much simpler operation. The internal
  logic is based on stream of binary data, and not
  on string indexing anymore. Additionally,
  decoding used to look like this:

     bitmap = DerObject()
     bitmap.decode(input_buffer, True)
     if bitmap.isType('BIT STRING'):
        ... proceed with parsing ...
     else:
        ... error ...

  Whereas now, it is cleaner and more compact:

     bitmap = DerBitString()
     bitmap.decode(input_buffer)

  Any error condition will lead to an exception.

- isType() method has been removed because of the above.
- Added examples and documentation
- Added support IMPLICIT tags
- Added support for negative INTEGERs
- Added DerSetOf ASN.1 class
- DerObjectID can be initialized from the dotted representation of
  the Object ID.
- DerBitString has a new member 'value' to hold the binary
  string. The member 'payload' should not be accessed anymore.
- DerObjectID has a new member 'value' to hold the dotted representation
  of the Object ID string. The member 'payload' should not be accessed
  anymore.
- Added operator += to DER SEQUENCE. Now it is possible to do:

      my_str = DerOctetString(b'ZYZ')
      seq = DerSequence()
      seq += 0
      seq += my_str.encode()
- Update to test cases
Added support for PKCS#8-encrypted private keys.

The patch contains the following changes:

- Private RSA keys can be imported/exported in encrypted form,
  protected according to PKCS#8 and PBKDF2WithHMAC-SHA1AndDES-EDE3-CBC.

  That is, password-protected with key derivation performed
  with PBKDF2 based on HMAC-SHA1, and encryption done with
  3TDES in CBC mode.

- All PKCS#8 code (including import/export of private RSA keys
  in the clear) is factored out into Crypto.IO.PKCS8 module.

- All PEM code is factored out into Crypto.IO.PEM module.

- All Object ID (OIDs) are now in dotted form to increase
  readability.

- Update RSA import test cases.

- Updated to PKCS8 test cases
Added 7 PKCS#5 schemes

The following (historical) schemes are taken from PKCS#5 v1.5:
- pbeWithMD5AndDES-CBC
- pbeWithSHA1AndRC2-CBC
- pbeWithMD5AndRC2-CBC
- pbeWithSHA1AndDES-CBC

The following robust schemes are taken from PKCS#5 v2.1:
- PBKDF2WithHMAC-SHA1AndAES128-CBC
- PBKDF2WithHMAC-SHA1AndAES192-CBC
- PBKDF2WithHMAC-SHA1AndAES256-CBC