* based on extension, choose mode (as with jedit)
  friends.people, work.people, etc.

* setting a mode sources a file that contains a list of array elements
  for that mode, along with their labels.  need some indirection so
  users can customize labels (maybe per-file?)
  - ordinary fields
  - boolean tags

* that file can also have code (print addresses, generate aliases, 
  print CD labels, contact FreeDB to fill in fields, etc.)

* loading in a file means performing a huge array set on its contents

* mode file determines how fields are presented
  - label for each field
  - some fields are always displayed; others are chunked into groups
    and the UI displays one of those groups (so work phone, email, 
    and address are displayed together, home phone, email, and address,
    and so on).  names of groups might be per-mode, or maybe there 
    should be support for creating new ones on the fly in the data 
    file.
  - support for hidden/shown fields?
  - support for fields in different formats (image, audio, text, etc.)?
* support for linking
* some sort of highlighting/prioritization
* maintain state across uses (what file/record were we looking at?)
* support for intelligent copy/paste (copy record as address, copy
  full email address, etc.)
* everything must be UTF8
* rich-text support for notes using embedded jedit?  probably not 
  in this version, but leave hooks for it in file format
* for low-memory use, use iscomplete to read entries one at a time?
