router: fix rewrites not to appear as being applied first, issue #14

This is one example of what should not be done in an ideal world, but
will be too costly (performance) if done the ideal way, so here we go:
Pushed down metric strdup(3)-ing to router_route, such that we don't
share a single pointer to the metric for all destinations.  This is
necessary to avoid seeing the rewritten metric at every destination,
because now a string copy is made at the time of evaluating the rule.
Had to change the contract of queue not to do any strdup(3)-ing now,
which made it incidentially a bit more consistent overall.  Catch is now
that server_send() assumes it gets a pointer to a copy for itself (as
input to queue_enqueue).  Without this, we'd have to make more copies,
or maintain a string list and clean that up, which all boils down to a
lot of work, not necessarily de-complicating the whole core.