Remove deprecated thread functions
Request direct connection when setting up OpenGL

This fixes an OpenGL error with some graphics driver such as the open
source Intel drivers.
Queue mouse events and process them during expose

Previously mouse events would get stacked up and prevent screen
updating. This only saves the most recent event and skips the rest.

It also forces a redraw after running picking which leads to a much
more responsive display.
Update examples

- Fix crash in teapot plugin
- Use direct rendering in gl example
Fix crash while initializing OpenGL context

GL was crashing with a BadAlloc, this seems to be related to the Intel
graphics drivers when using indirect rendering. Using a direct rendering
context fixes the problem, however we can at least attempt both way if
one or the other fails.
Remove a lot of callback from GritsOpenGL

Many of the callbacks can be moved the expose function. Since they
mostly run in the main thread anyway it doesn't matter too much.

One distinct advantage of this is that the split_merge and expose
functions are interleaved, the end result of which is a much nicer
looking display.
Change website to pileus.org
Move tarball folder
Add X11 library for sync calls
Switch elevation plugin to thread pools

This makes things consistent with the map/sat plugins and will hopefully
improve stability. They all need some work though..
Set debug level for test rules
Fix a variety of memory leaks
Fix race conditions
Remove some unused API cruft

This also prevent errors if an object is removed from the viewer twice.
For example:

  - The viewer is destroyed
  - The opengl dispose function removes all objects
  - The application frees plugins
  - The plugins dispose function attempts to remove
    an already removed the object
More reference counting updates

The viewer now adds it's own references and doesn't take references from
the caller. In almost all cases the caller needs to keep it's reference
so that it can remove the object when the plugin is unloaded.
Move low level tile loading to GritsTile

Move all the OpenGL stuff out of the plugins and into GritsTile, this
prevents needing to explicit idle callbacks in plugins, which is
extremely unstable when unloading a plugin.

Note: The tile code is _not_ thread safe and will be reworked in
subsequent changes. The plan is to use some sort of priority queue and
do all the updating and garbage collecting from the main thread directly
from the location-changed callback. The plugins can still use thread
pools for the actual downloading and loading.
Move threading out of tile update/gc functions

This prevents all sorts of race conditions when unloading plugins.

I hope.
Add thread safe grits_viewer_queue_draw function

This should be used by threads when they finish loading something. Any
additional loading which must be done by the main thread will ideally be
done during the next draw.
Fix bug in plugins unload
Fix crash on osx due to uninitialized pointer