pkg-Makefile: add CLICKFINDELEMFLAGS to findelem call

elementmap.xml will now include elements that are built with
dependencies passed in via CLICKFINDELEMFLAGS.
Stop supporting Linux 2.4.

About time.
Internal: one unlock_config() function.
Merge branch 'master' of https://github.com/kohler/click
click/string: make mutable_data more explicit about memo refcount

Previously, String::mutable_data might deref but then continue to use
_r.data and _r.length.  It would prevent the underlying memo_t from
disappearing by taking a temporary reference via a local String.

This change makes that intention more explict by using the temporary instead
of accessing the now invalid _r directly.
click/linux: add dump stack to click_assert_failed

Now when an assertion fails, we will dump stack even if we don't panic.
This is crazy useful.
Handler flag cleanup.

No driver needs more than 2 driver flags, and there is no evidence
for user flags being useful at all that I remember, so reduce
their number.
Use newer spelling of Handler::h_nonexclusive.
Fix handler exclusivity.

- Remove Handler::exclusive(). Provide more specific and clear
  Handler::allow_concurrent_handlers(), allow_concurrent_threads().
- Read handlers obey Handler::exclusive() properly. Derrick Pallas
  showed that the previous code didn't: multiple HANDLERS could
  proceed in parallel, even though a read handler would block out
  concurrent threads. This behavior disagreed with the documentation.
- Use a version of Derrick's lock-upgrade code. Also introduce lock-
  downgrading for write handlers.

Signed-off-by: Eddie Kohler <ekohler@gmail.com>
Improve compilability of --enable-adaptive.
Simplify and I believe correct handler locking.

- Config handlers are NOT nonexclusive! In fact they must be
  exclusive, because they modify click_router. Previously they
  weren't even protected from one another.
- In this commit click_router and click_config_generation are
  protected by the exclusive clickfs_lock mutex.
- Most file system functions keep the exclusive clickfs_lock
  during their operation, so that click_ino is protected.
  This makes the separate click_ino_lock redundant; it was
  inadequate anyway, since writing /click/config could change
  click_router at any time.
- Will this reduce scalability? Perhaps: but note that the
  clickfs_lock was ALWAYS an exclusive mutex (we faked read
  locking ourselves). I bet this will perform simiarly, with
  respect to directory operations and such.
- Support lock downgrading for non-exclusive handlers. Downgrading
  (1) "uses" the current router (so it won't be deleted by a
  concurrent /click/config write), (2) releases the clickfs_lock.
  It is not OK to access click_router, click_config_generation,
  or click_ino after downgrading the lock, so don't do that.
  Releasing a downgraded lock reduces the refcount on the relevant
  router.
Merge pull request #98 from jdizzle/master

pkg-Makefile: add CLICKFINDELEMFLAGS to findelem call
Merge remote-tracking branch 'origin/clickfs'
Stop lying about CVS
Merge branch 'master' of https://github.com/kohler/click