Simplify Spi implementations. (#2663)

Using `object`s instead of a hollow class as the "factory" for an Spi makes them being singleton by default, which reduces boilerplate to implement an Spi.

The `Dependencies` object is not used anywhere and there might be better alternatives which we can decide on once the need of them comes up. For now, the Spi's interfaces are relatively tightly coupled to their current default implementations anyway.

Also updated documentation.
1 file changed