poolmanager: Add partition for transfer buffers

Adds the 'buffer' partition type. This partition type is for pools that are
used as temporary transfer buffers rather than long term storage.

Pool selection does not take free space into account (with the exception of not
selecting full pools for writes). Pools are selected by load only, using a
randomized weighted selection with 1/2^(cc * mc * n) as the weigth, where n is
the number of movers on the pool, mc is the mover cost factor of the pool and
cc is the cpucostfactor as configured in the partition. Mover queue limits do
not influence pool selection.

Buffer pools do not support hot spot replication, cost based link fallbacks,
replication limits, same host replication protection, nor idle cost cuts.
Buffer pools do support pool to pool transfers as well as stage from tape,
although the current implementation may not be well suited for tape pools.

Target: trunk
Require-notes: yes
Require-book: yes
Acked-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Acked-by: Paul Millar <paul.millar@desy.de>
Acked-by: Dmitry Litvintsev <litvinse@fnal.gov>