jd_server_sv2 0.1.1

Sv2 Job Declaration Server
Documentation
## Job Declarator

This is the main orchestrator of the Job Declaration process.

It leverages a `impl JobValidationEngine` and a `TokenManager` to make sure that declared Custom Jobs are managed correctly.

## Job Validation Engine

The goal of the `JobValidationEngine` trait is to allow for Custom Job validation and solution propagation to be done over a modular interface that is agnostic to:
- Bitcoin node implementation
- Communication method with Bitcoin node implementation

The initial implementation is based on Bitcoin Core over IPC, but other approaches should be doable by implementing the `JobValidationEngine` trait.

Please note that token management is not covered here.
More specifically, it is the `JobDeclarator` responsability to leverage a `TokenManager` to manage the tokens to be
added to:
- `AllocateMiningJobToken.Success.mining_job_token`
- `DeclareMiningJob.Success.new_mining_job_token`

Similarly, validation of:
- `DeclareMiningJob.mining_job_token` against `AllocateMiningJobToken.Success.mining_job_token`
- `SetCustomMiningJob.mining_job_token` against `DeclareMiningJob.Success.new_mining_job_token`

are also `JobDeclarator` responsability via `TokenManager`.

## Token Management

todo