mount: Fix bugs in getIoLimitGroupId

This function was suffering from a couple of problems like
throwing wrong exceptions or taking arguments by value instead
of by a reference.
mount: Introduce I/O limiting mechanism

This change makes it possible to define I/O limits for processes
from different cgroups in one hierarchy (identified by a subsystem,
eg. blkio). For example this configuration:

  subsystem blkio
  limit /group1 1024
  limit /group2 30720

limits I/O generated by processes from /group1 to 1 MB/s and by processes
from /group2 to 30 MB/s. This throughput is defined as a sum of read and
write requests (on the interface between then kernel and mount).

To enable I/O limiting, mount the filesystem with mfsiolimits=<file> option
providing a path to a file with configuration of these limits.
mount: Add a possibility to use I/O limiting without cgroups

This commit introduces support for a special entry in the I/O limit config
file, ie:

  limit unclassified <some_limit>

If this is the only entry in the config file, it will be used as a limit for
all processes. If there is also a subsystem and some limits for cgroups
specicifed, it will be used as a limit for processes from cgroups which are
not present in the configuration.
tests: Add a simple test of I/O limits