stridesched: fix initialize

This was preventing the signal/notifier optimization path from working
for StrideSched.  The conditional is here because this code is shared by
StrideSwitch.

Signed-off-by: Cliff Frey <cliff@meraki.com>
Merge pull request #94 from clifffrey/stridesched-fix

stridesched: fix initialize
Testie update: improve documentation, add $rundir support
Update package building for 288d860f87.

Symptom was a click-fastclassifier failure.
testie: %stderr works.
testie: Correct handling of alternates in {{}} regex.
FromIPSummaryDump: If link is given, default to eth_type IP.
Json: Correct UTF-16 surrogate calculation.
Correct click_random(low, high).

How humiliating! Cliff reported the bug and fixed it independently.
nsclick: Correct offset when parsing serialized defines.
Merge pull request #95 from sascha-jopen/nsclick-defines-offset

nsclick: Correct offset when parsing serialized defines.
Improve RawSocket element.
* Allow for sending broadcast packets.
* Allow for creating raw sockets for abitrary ip protocols.
* Use NamedIntArg for parsing the protocol.
Merge pull request #96 from sascha-jopen/rawsocket

Improve RawSocket element.
ARPQuerier: add ENTRY_PACKET_CAPACITY

This parameter limits how many packets an ARPQuerier stores for any
given ARP entry. The default (and existing behaviour) is to store an
unlimited number of packets (subject to PACKET_CAPACITY).  A packet that
arrives for an ARP entry that has reached ENTRY_PACKET_CAPACITY is
dropped.

Also, fix a packet leak for the case that append_query() returns
-ENOMEM.  Previously, this leak probably wasn't that important /
noticeable since it would only occur on memory allocation failure.
However, we now hit this case whenever ENTRY_PACKET_CAPACITY is
exceeded.

Reviewed-by: asa@meraki.com
Fix multithread bug: Reset _run_args, etc.

Problem: Imagine executing Script.run for a Script that returns
$1 (i.e., its first parameter). $1 is a substring of _run_args.
_run_args is a member of Script. Script.run is multithread-safe
(it's an "exclusive" handler, so at most one Script.run can run
at a time). But we didn't reset _run_args at the end. So: the
return value of Script.run shared memory with Script::_run_args.
The return value is manipulated by clickfs, and eventually
dereferenced and freed, OUTSIDE the configuration lock. But
Script::_run_args is reset the next time Script runs, which
might be concurrent! Crash.

Derrick Pallas reported the problem and helped narrow it down.
Add more String methods for managing sharing.

- String::data_shared: is_shared is a better name.
- String::is_stable: add it.
- String::unique: returns a new copy of *this if *this
  is_shared() && !is_stable(). (Maybe unique_or_stable
  would be a better name?)
Fix the shared-string handler problem better.

This fix would catch problems in other exclusive handlers.
ARPQuerier-08.testie: add valgrind support

Cliff spotted this.
StoreIPAddr: Accept other OFFSET arguments than 'src'.

Signed-off-by: Eddie Kohler <ekohler@gmail.com>
Clickfs: Move read-handler preparation into its own function.

A version of this was done at Meraki.