Implementing a O(1) space SMA algorithm (previously O(N))

Previously we had a window that shifted each element by one, as follows:

  . . . . . . . . . . . . . .
    |          |
    +----------+
  ---- move(1) -->

In practice, we had to maintain a buffer with exactly N elements.

The new algorithm now maintains two windows. Instead of shifting each
element we replace the old window with the new one when the later gets
full.

This makes the window size variable. It ranges from N to 2N, but that
seems not be a problem for our data.
rewriting makefile: moving helper stuff to makefile.lib
using pip-requires instead of PYTHONDEPS
no longer providing dmproc binary; adding instructions about how to build it instead
turning on dired-omit-mode by default
implementing sma in terms of ewma

Using EWMA to implement SMA seems to be a better solution than using
an window size that varies over time [which probably doesn't have a
name :-)]. Both models are very similar and EWMA is a very efficient,
space constant, function to implement.

The implementation uses $1-2/(n+1)$ as the ⍺ value. This should give
us a reasonable approximate to the SMA function.

The implementation also takes care of warming up the EWMA. It waits
$(n+1)/2$ data points to arrive before finally switching over to EWMA.
bugfix: Time#diff is always absolute
Implementing couter, derive and absolute metric engine

The derive and counter follows closely the RRD implementation. We
don't accept data in the past and flush it only when new data is
received.

The absolute is able to sum up events that are arriving too fast. Thig
might be very useful to use it as an API, to measure requests per
second from different web servers.
implementing ttl to make sure we don't get weird results by dealing with old events
adding gc function to cleanup old events
implementing metrics parser (and moving Asm.Parser/Render into Parsers module)
bugfix: the module should be exposing metricParser function
exposing the EWMA function in the dmproc syntax

Also, in this commit:

  * bugfix: runAll is now in Parsers.Helpers (NetworkProtocol && Network.ProcServer)
improving documentation and other minor changes
first version of brodcast group management
bugfix: misleading comment
import Prelude is redundant
using forever instead of (fix $ \loop)
renaming Broadcast to Multicast and making the implementation simpler
merge private functions with public ones: they are only used once