pipelimit: moved log messages out of lock

- free allocated cell if the algorithm is invalid
pipelimit: added pl_check(pipeid, alg, limit)

- when alg and limit parameters are given, pl_check() creates the pipe
  if it doesn't exists
- if exists, then no change is done to existing pipe (alg and limit are
  not changed)
pipelimit: added hash_size parameter

- can be used to set the number of slots for the internal hash table,
  which is computed as 2^hash_size (aka 1<<hash_size)
- default is 6 (2^6 = 64 slots)
pipelimit: docs updated with hash_size parameter and pl_check() changes