imessage-database 2.0.1

Parsers and tools to interact with iMessage SQLite data
Documentation
# Body Tests to do

- Support dates, units, and phone number highlights
  - [ ] number: 3210E669-886A-5EA3-8CF6-08C4917D8FCE, A9394D78-43E1-F30D-C538-EED38B892D1F
  - [ ] date: 2AB17445-E85D-E5D6-1414-7C7215E848D9, C211E576-02A6-413E-89ED-66F13180A8E3, B65CF40E-074D-DF3C-BC54-4DEF22E7CEFD
  - [ ] unit: 9CA81D47-DE70-4544-A4D1-F5C6DB0091B5, CC49CB53-6E7B-499A-8296-450550D3351A
  - [ ] phone number: A7CE509E-BBAD-4CCF-B04B-13F1B7863258
  - [ ] edited: 6A85328A-5769-4B61-B423-D5CEEEB7F63D
  - [ ] email: 418E7BAF-5E1B-AA9E-B3B6-A57BDE013EF5
  - [ ] date and address: F8660F03-35FF-4147-15B8-AF5FF9BFB810
  - [ ] money: 0462FEDB-DBE6-4472-96B0-86B9B08208C3 ?
  - [ ] split mention: 1DC7F450-77E6-4741-B66D-9F5ECF4AAD9A

Code to parse data array as plist:

```rust
let pl = m.components.as_ref().unwrap().get(9).unwrap();
if let Archivable::Data(maybe_arr) = pl {
    if let Some(OutputData::Array(bplist)) = maybe_arr.first() {
        let plist = Value::from_reader(Cursor::new(bplist)).unwrap();
        std::fs::write("test.bplist", bplist).unwrap();
        // TODO: This doesnt work becuase the root is missing
        let parsed_plist = plist::parse_plist(&plist);
        println!("{:?}", parsed_plist)
    } else {
        println!("not array")
    }
} else {
    println!("wrong type")
}
```