Wrap thead around 1st row, when 1st cell at 1st row is tableheader. Implements FS#1764
add <THEAD> to top rows of tables when all cells are <TH>
update tests for use with <THEAD> changes
swap order ot test parameters to match expected,actual as per documentation & test output
Merge pull request #390 from splitbrain/tablethead_chris

multi-row THEAD & tests
Restore correct public interface of getUserData() for authldap
plugin

The outer/public getUserData() implemented as a wrapper for the
previous fn which is now protected.
Allow user info to be retrieved without groups

Some parts of dokuwiki (e.g. recent changes, old revisions) can
requests lots of user info (to provide editor names) without
requiring any group information.

This change also implements caching of user info by authmysql &
authpgsql plugins to avoid repeated querying of the DB to retrieve
the same user information.
code styling - add missing braces
fix comment errors, sp. & grammar
fix io_rmdir_test::test_nopes() for symlinks in paths
Refactor updateTuple()

The existing function was difficult to follow.  It worked when
adding a new tuple, but not in the most sensible manner.
Merge branch 'master' into tablethead
improvements to double quote matching
Add encoding fix to tpl_img_getTag()

Run jpeg meta tags through cleanText for a conversion to UTF-8
from latin-1 if possible.  MediaManager already uses this
conversion.  Addresses a side issue of FS#1988
Fix a couple of issues with PR#571

1. renderer validity checks were too stringent for plugins, format
   should only need to be checked when mode is 'xhtml'
2. E_USER_WARNING message should now be obsolete, its previous use
   was to generate a warning when 'xhtml' rendering failed. PR#571
   insures 'xhtml' rendering always succeeds.
remove test expectation for E_USER_WARNING
use $requireGroups constants in auth classes; comments; code improvements
Fix longstanding issue with cache class & cachetime setting

1. cachetime setting should only be applied to the cache_renderer
   class.  Previously it was applied to cache_parser (and by
   extension cache_handler).
2. two special cachetime values, -1 & 0, weren't handled, per
   FS#2183

To handle the cachetime setting, -1, disable caching, a new
property _nocache is added.  When that property is true, any cache
file must not be used and storecache() should not store any values
implement rules for when the top rows of a table qualify for a THEAD element
1. TD < 2 in a row
2. TD <= 50% of total cells
3. Not all table rows can be THEAD rows
put PHPDocs comment back the way it should be