tolerance 1.2.0

Math representation of the physically needed permissible deviation of measures.
Documentation
### Serde

#### Default serializer

Serializes into something like:
```json
"width": {
  "value": 100000,
  "plus": 1000,
  "minus": -1000
}
```

#### Plugable serializer

Serde offers a [`serialize_with`](https://serde.rs/field-attrs.html#serialize_with) parameter.

```rust
# use serde::Serialize;
use tolerance::*;

#[derive(Serialize)]
struct Part {
    #[serde(serialize_with = "into_string")]
    width: Option<T128>
}
```
Available serializers:
* `into_string`: serialize into string-field like the [`to_string()`-method]fn.into_string.html.
* `into_float_struct`: serialize into a [struct like the default-serializer]#method.into_float_struct but with float-fields.
* `into_float_seq`: serialize into an [array of 3 float-fields]#method.into_float_seq.

#### Deserialization

While deserializing ommiting `minus` is interpreted as `-plus`. Ommitting `plus`- and `minus`-parts defaulting to ZERO.
The properties can be abbreviated to `v`, `p` and `m`. A JSON of `"width":{"v":10000}` would be valid.

Beside the standard deserializer some special-deserializer are offered.
* [interpreting an empty-string as `Self::ZERO`]#method.empty_to_zero
* [interpreting an empty-string as `None`]#method.empty_to_none

```rust
# use tolerance::T128;
#
/// JSON-struct
let t: T128 = serde_json::from_slice(
    b"{\"value\": 1245.67, \"plus\": 0.3, \"minus\": -0.5 }"
).unwrap();
assert_eq!(t, T128::new(1245_6700, 0.3, -0.5));

let t: T128 = serde_json::from_slice(b"{\"v\": 1245.67, \"p\": 0.3 }").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.3, -0.3));

let t: T128 = serde_json::from_slice(b"{\"v\": 1245.67}").unwrap();
assert_eq!(t, T128::new(1245_6700, 0, -0));

/// JSON-array
let t: T128 = serde_json::from_slice(b"[ 1245.67, 0.3,  -0.5 ]").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.3, -0.5));

let t: T128 = serde_json::from_slice(b"[ 1245.67, 0.3 ]").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.3, -0.3));

let t: T128 = serde_json::from_slice(b"[ 1245.67 ]").unwrap();
assert_eq!(t, T128::new(1245_6700, 0, -0));

/// JSON single value `Float`
let t: T128 = serde_json::from_slice(b"1245.67").unwrap();
assert_eq!(t, T128::new(1245_6700, 0, -0));

/// JSON single value `Integer`
let t: T128 = serde_json::from_slice(b"12456700").unwrap();
assert_eq!(t, T128::new(1245_6700, 0, -0));

/// JSON single value `String`
let t: T128 = serde_json::from_slice(b"\"1245.6700 +0.45 -0.2\"").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.45, -0.2));

let t: T128 = serde_json::from_slice(b"\"1245.67 +/- 0.45\"").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.45, -0.45));

let t: T128 = serde_json::from_slice(b"\"1245.67;0.45\"").unwrap();
assert_eq!(t, T128::new(1245_6700, 0.45, -0.45));

let t: T128 = serde_json::from_slice(b"\"1245.67\"").unwrap();
assert_eq!(t, T128::new(1245_6700, 0, -0));

```