Continued work on channels.

- Doxygen and comment fixups.
- Removed m_storage from TypedChannel<>.
- Split receive methods of TypedChannel<> into one that returns the
  value directly but always has an infinite timeout and one that returns
  the value via a ref param but has configurable timeout.
- Added missing inline keyword to _ar_list::isEmpty() declaration.
- Removed m_dest from _ar_channel struct.
- Created a common ar_channel_send_receive() static function that the
  individual send/receive APIs call, since most of the code is the same
  for both directions.
- ar_channel_send_receive() has a special case for word-sized channel
  width to avoid calling memcpy().
- Updated basic_test.cpp with a channels test, which actually needs to
  be moved to its own file.