Add analog read write functionality

NOTE: run the tests with `RUST_TEST_TASKS=1 cargo test` not in parallel.