expand external_libraries

Friendlier development environment with external_libraries not shipped
compressed. Also necessary for removing excessive libtiff cruft and
annoying system-specific wm4 stuff in the future.
add .gitignore for generated files

This drastically simplifies development in the git tree
remove non-distributable automake cruft

until the source tree is set up so that `make dist` can generate a
proper distribution with local copies of the relevant autotools, users
won't be able to do the ./configure && make dance from what is
currently provided. Instead provide a bootstrap.sh script to take care
of creating the correct files.
add autotools support for building worm browser

Add autotools support for building the worm browser on linux and OS X.
There is also some incidental cleanup of the autotools inputs for
improved portability (though I am no expert).
Remove unnecessary linkage requirements on OS X

Patch wm4system sources to not need the carbon framework on OS X. This
disables a function unused by anything else. Reject this patch if it's
preferable to not patch these sources.
Saner libtiff monkeybusiness

Refactored wrapping libtiff client_data in a way that doesn't require
access to libtiff internals or having a whole extra copy of libtiff
sources around. What's going on is now rather more clear. (This whole
mess is unnecessary in the first place, BTW, unless multiple threads
will be opening tiff files at the same time. If not, just checking a
global error state after each call would suffice. If thread-safety is
required, though, the libtiff error handler could just maintain a map
from file descriptors to error codes, allowing any given tiff-opening
thread to check for errors associated with that tiff object without
having to package everything up in client_data.)

Note that there's a lot of confusion in the libtiff code between int
types and pointer types with regard to the fd handles. Also, how the
fd handle type in ns_client_data is defined on win/unix is different
than how it is defined in tiffio.h. I fixed the latter, but overall
this is an unpleasant (if probably still 64-bit-safe) situation.

Therefore I still think it's better to just map between open fds
and errors returned, rather than trying to patch into the already-
brittle libtiff client_data situation.
Make code standard C++98

Lots of C++11 idioms and other non-standard constructs are silently
allowed by the highly-permissive VC++ compiler. Root these out to allow
for compilation on Mac/Linux with g++/clang++ toolchains and the older
and still-better-supported C++98 standard.

Also correct case-insensitivity of VC++ preprocessor and windows path
separators in code.
Fix for picky compilers.

Minor fixes to make fastidious compilers like clang++ properly enjoy
the code.
Fix operator precedence errors

ternary operator is very low precedence; in particular lower than <<
and +, so must be parenthesized in most compound statements.
fix assignment vs. equality-testing bugs
Fix issues with unsigned int comparisons

There are several tautological comparisons for < and >= 0 with unsigned
ints. Some of these are pointless and have been removed; some are based
on unnecessary casts that could mask actual error conditions, and have
been fixed.
Fix enum comparison bugs

Compiler warnings identified these two issues with comparisons between
different enum types which look to me like bugs. (This should be
double-checked though.)
Deal with dangling no-op code

There are several places with no-op code. Some are clearly stylistic
but the style is highly nonstandard and has been cleaned up; others
seem to be indicating that something was left incomplete. I tried to
fix obvious cases, and marked as TODO cases where the intent was less
clear.
Use FLTK native dialogs instead of windows dialogs

Switch to the FLTK-provided OS-native file dialogs instead of
windows-specific ones. Also comment out some dead code where
windows-specific dialogs are asked for.
Root out windows-specific code

Remove or #ifdef _WIN32 protect windoes-specific code and provide
cross-platform equivalents. Hard-coded windows file paths were removed
or altered as well.
Unix-y equivalents of resource-file loading were added (with prior
support from autotools). No support yet for adding the image and font
files to the ns_worm_browser.app bundle on OS X though.
Note: I did NOT add cross-platform clipboard support yet.
Fix platform-specific assumptions

Remove some windows-specific hardcoded paths and also added various
headers needed on OS X (and presumably other BSDs).
hackish fix for ns_mysql_header hack

The "namespace ns_mysql_header" idea not a good plan. See comments in
the code, but in brief, system headers included for the first time via
mysql.h will be placed in this namespace and will be unavailable to the
global namespace. This patch just fixes a specific problem on a
specific OS, but it is very likely the problem will arise again with a
different OS or changes to the system headers included by mysql.h. It
would be a much better thing to figure out how to address the
underlying problem that was "solved" with this namespace, but I don't
quite know exactly what that was at this point.
Fix high_precision_timer

Add timer routines for OS X, and change the linux timer routines to use
CLOCK_MONOTONIC rather than CLOCK_REALTIME, which latter can jump
around due to NTP updates. (
http://stackoverflow.com/questions/3523442/difference-between-clock-real
time-and-clock-monotonic )
Fix "ns_image_server submit_experiement" CLI usage

Running "ns_image_server submit_experiement" from the command-line
fails due to incorrect argument parsing. Fixed.
fix quotes

Seems a tad gendered? It caught my eye from an error log...