linuxmodule: to device: update queue expiry time when queuing after a drop

Without this change, any packet queued in this code path is guaranteed
to be dropped, since it has the same expiration time as the packet that
was just dropped.
When calling clone(), _data_packet always point to the root of a packet cloning chain/tree instead of the packet on which clone() is called. This allows to kill and effectively free intermediate cloned packets in the chain as described in http://librelist.com/browser//click/2014/11/24/clones-of-clones/ .
Add test that demonstrates incredibly dumb bug in Packet::clone().

'Clones of clones' thread on librelist.
Merge pull request #143 from MappaM/parentclone

Keep _data_packet pointing to the original ancestor
Avoid dangling reference to _packet.

Reported by Johan Bergs.
Merge pull request #142 from jdizzle/master

linuxmodule: to device: update queue expiry time when queuing after a drop
Improve configury to allow build with gcc-4.8 on Mac OS X Yosemite.
Make tests more reliable.
More modern configury and directory rearrangement.

- Use tags to re-create files.
- Put temporary binaries in directories with names like bin/,
  so we could imagine using a build directory as a fake install
  directory.
Ignore g++ warnings in fastclassifier test.
Miniderp
click/string: clear dangling pointer on String::deref

In order to make use-after-free of Strings fail more quickly, this change
blows away _r.memo on String::deref(), since we should no longer hold a
reference to it.  Additionally, it asserts that the memo_t's refcount is not
zero when deref is invoked, since the caller should have a valid reference
at that point, and also that the refcount is zero when the memo_t is
deleted.
linuxmodule/FromDevice: replace assert with skb_share_check

It isn't clear that this assertion holds in general, so just Do the Right
Thing instead.  If the check returns NULL, the original SKB has already lost
a ref, so report that it was handled.
Whitespace only.
clickpath_find_file: Only find files, not directories.

On Mac OS X reading a directory as a file succeeds but takes forever.
Whoopsy
CLP: Refuse to parse an option whose value has bad type

when the value was explicitly given.
CLP nit
Correct references to click-buildtool.
CoDel AQM implementation

CoDel implementation for AQM to mitigate bufferbloat. Drops packets from the queue based on the
sojourn time of the packet in the queue.
Searches the nearest upstream storage element first (eg Queue) and acts on that. If downstream
not found, then looks for the upstream element. It needs the "SetTimestamp" element prior
to the 'Queue', which sets the "first timestamp" annotation. CoDel then uses this annotation
to track the sojourn time, and then later overwrites it with the resulting sojourn time for
possible analysis thereafter.
Ref: http://queue.acm.org/detail.cfm?id=2209336

Signed-off-by: Apurv Bhartia <apurv@meraki.com>