Encapsulation of crypto related functionality

Right now we have two main `crypto` APIs: `iroha::crypto` and `ursa`.

Main entities of both APIs:

  • Private and Public Keys
  • Signatures

We already have an abstraction over some `ursa` entities. Proposal is to encapsulate everything under `iroha::crypto` do not exposing `ursa` related entities outside this module.

It means that new methods for generating keypairs and signature verification would be added to `iroha::crypto` with wrapper entities (Public/PrivateKey).