Operators and [Double] support for beCloseTo matching

In a nutshell:
```
expect(1.0) ~= 1.0001
expect(1.0) == (1.002, 0.005)
expect(1.0) == 0.9 ± 0.2
expect([0.0, 1.0]) ~= [0.0001, 1.0001]
expect([0.0, 1.0]).to(beCloseTo([0.1, 1.1], within: 0.1))
```