Refactor perl calls through a single method

I don't know the perl/C interface well enough to figure out the best way
to standardize the many variants that we use to call perl code.  Perhaps
we should standardize the error messages, and put less knobs on the
boilerplate macro.
Added support for calling perl subs with various return types
Added a perl hook for :away

Note: The sepbar no longer distinguishes between AWAY, A-AWAY, and
Z-AWAY.
Added a hook for wakeup/user input.

I wanted to add a hook that got called on all user-input, but any
non-trivial use of that hook incurred too much overhead (about 7 ms per
paragraph for entry into perl, and another 100 ms or so per paragraph
for execution of the hook; tests run on pasting lorem ipusm, on
linerva).

This hook is called at most once a second (approximately).
Added perl methods to register and unregister idle watchers.
purge libfaim
Import Net::OSCAR 1.928
Manually added the xmlcache for Net::Oscar

This file is normally generated by the Makefile.PL that comes with
Net::Oscar.  It's much easier for me to just include it than to add the
extra script and figure out what lines need to get stuck in the
makefile.
Potential fix to Net::OSCAR to make it deal with coderefs in @INC
First pass at implementing perl support for addbuddy/delbuddy

The help texts have to be made more useful and the syntax should be made
more flexible (e.g.,
  addbuddy zephyr foo
  addbuddy aim foogroup bar
)
perl/AIM

Supports all the features of libfaim/AIM, except for :aim search;
Net::Oscar seems to not support finding the email address of a buddy.

Overview of things which are different:
 * buddy alias, if available, shown after login information.
 * Buddies get added to autocompletion on login, and removed on logout,
   unless you've sent an IM to them (in which case they stay in
   autocomplete)
 * BarnOwl now supports multiple AIM accounts.  This makes
   addbuddy/delbuddy somewhat limited.  To get around this limitation,
   aim:addbuddy and aim:delbuddy have been included (with extended
   syntax)
 * aaway_msg now defaults to ''.  This doesn't actually change anything
   functionally.
 * aaway will no longer take your improperly quoted string and treat it
   just like you want it to.  This may break some backwards
   compatibility.  Always properly quote and escape your strings!

TODO: Decide whether or not to make the backwards-incompatible change of
enforcing a properly quoted string argument to aaway.

TODO: Completion for more commands.

XXX TODO: Figure out why aim:set doesn't work well

XXX TODO: Do more testing.
 Commands that have been tested:
  * aimlogin
  * aimlogout
  * aimwrite
  * alist
  * aim:show
 Commands that have yet to be tested:
  * aaway
  * aim:addbuddy
  * aim:delbuddy
  * aim:chat *
  * aim:set_password
  * aim:set_extended_status
  * aim:set_email
  * aim:set_screenname_format
 Commands that have been tested and do not work properly:
  * aim:set

Includes code written by Geoffrey Thomas <geofft@mit.edu> in his first
take at perlaim in 2008, and code written by Alejandro Sedeño
<asedeno@mit.edu> in his revision of perlaim in 2010.
Added a subclass of BarnOwl::Message for queuing meta-data messages

Not sure how useful this will end up being, or if this is the right way
to go about doing things.  I use it for queuing chat state
notifications, and it might be useful for displaying
zephyr-client-hint-type responses.
Added support to the default style for viewing chat state notifications

The flavor is based on jabber chat state notifications, XEP-0085.

Meta-messages are queued, and then deleted on update. The use of this
variant vs. display below the sepbar will be controlled by the
appropriate protocol-specific variable.

The default style is tweaked to display these messages intelligently.
Perhaps we should do something sane with other styles...
AIM Typing Status Notifications!

Implemented support for AIM typing status notifications. Typing
notifications are either displayed in the message list or below the
sepbar.
Fixup aim message
Update readme
Partial update completion
Update makefile
Add a TODO
Rename variables to aim:* for consistency

This breaks backwards compatibility, so we may not want this.