Param caching made optional, disabled by default

In some cases, the autopilot might not broadcast PARAM_VALUE
messages following a PARAM_SET from a controller. This means that
if a separate GCS instance changes a param, this software
won't find out without an explicit re-fetch. So, caching is disabled
by default and the module will re-fetch the param each time it
is needed. If caching is desired, it can be enabled in the param
module's init() function by passing True to use_cache in the class
constructor.
Added param_getlist service

Refactored some functions within the param module to support.

Also refactored service types to support this and to clean up
service type interface in general.
Added timed event support to core class

Introduced add_timed_event(self, hz, callback) to call 'callback'
at 'hz' Hz. Implemented in _mainloop(), so see caveats in the
comments.
Added waypoint (wp) module

New services:
* /wp_getall - Gets complete list of waypoints
* /wp_setall - Sets complete list of waypoints
Revised README