Nicer, more Rustian interface for FlashAttr

`do_attr` that takes a lambda to process each byte. This avoids
allocating a 256 byte buffer and cleans up client code.