Set blkio.weight minimum values to a valid value (10 for 3.2 kernel)

Default "desktop" scheduler sets blkio.weight = 1 for cgroups where it
moves "idle priority" processes (those tagged as daemon.idle/user.idle
in ulatencyd rules) and "poisonous" processes. This fails because
allowed range for blkio.weight values is 10-1000 (on kernel 3.2.0). The
range seems to be changing between kernel versions, used to be
100-1000 in past.

This renders poisonous and idle processes having no penalty on disk
usage. I.e. idle cgroup stays with blkio.weight=500 on my system,
unfortunately audio/video players and other processes are scheduled
with blkio.weight=300.
scheduler: Do not reinitialize parent cgroups everytime a child group is created.

Whenever scheduler find a process matching rule and correspondent cgroup
does not yet exist, scheduler blindly tries to create all parental
cgroups, ignoring they may already be there.

adjust_new() functions are repeatedly called upon already existing
cgroups and adjust() function is repeatedly added to them.
scheduler: commit a new cgroup settings prior any process is added (or adjust_new called)

This is necessary to memory.move_charge_at_immigrate has effect.
Setting this to 1 or 3 is essential if we move tasks between cgroups
and want to account them for memory usage any time later. Without moving
charges setting memory limits for poisonous processes is nearly useless.
scheduler/00-common: fix merge_config pre rules handling

Pre rules used to be overwritten by template rules.
cgroups.conf: add memory.move_charge_at_immigrate'] = 1 to memory subsys defaults

Moving memory charges along with processes is necessary to handling
poisonous processes. Without this it is nearly useless.
core.lua: workaround for cgroups removed outside ulatencyd (i.e. by ulatencyd_cleanup.lua)

Reason:
Whenever scheduler finds matching rule for scheduled process, it calls
CGroup.get_group(name) to check if cgroup does exist. This used to check
only if it is contained in the internal _CGroup_Cache - not if it really
does exist in cgroup filesystem.

So if the cgroup was removed outside ulatencyd and therfore was not
removed from _CGroup_Cache, cgroup will not be recreated and will loose
all settings (default parameters, rule parameters, parameters adjusted
by adjust_new).

Workaround:
 + CGroup.get_group(): test if cgroup is really present in filesystem,
   otherwise return false or nil.
 + CGroup.new(): always create requested cgroup. If it is already
   contained in _CGroup_Cache, replace it with new one. Code should check
   its existence before calling CGroup.new() anyway.

Real fix would involve changing ulatencyd_cleanup.lua in a way it tells
ulatencyd to remove that cgroup. Ulatencyd should also update its internal
structures and do clean up, i.e. handle remaining memory charges.
Scheduler: really skip all ulatencyd processes

+ support for skiping other processes by adding them scheduler.skip flag.

Reason: Scheduler used to skip only ulatencyd process, not its threads
(gdbus) nor ulatencyd_cleanup.lua. Ulatencyd process was moved only to
separate cgroup of cpu subsystem, other subsystems used to be ignored
(memory subsys because of bug). This was useless as gdbus thread was
normally scheduled pulling main ulatencyd process into its cgroup. Also
if ulatencyd daemon was restarted by user, it inherited his cgroups in
all subsystems except cpu.
scheduler/desktop: fix kernel threads detection
rules/zz_fixers: fix io priority for user.media

Comment in the file says "we give processes marked with media flags
good io prio" and sets it to prio 7 (lowest) of BE class.  This should
be IMHO either 0 of CLASS_BE or 7 of CLASS_RT.  This commit fixes this
to prio 7 of CLASS_RT.
simple.d/idle: add tracker-miner-fs and tracker-extract (user.idle)
simple.d/idle: add label user.idle to boinc

I know nothing about boing, but I guess it was intended this way.
scheduler: trivial fix, make  Scheduler:all() call Scheduler:_one() not Scheduler:one()
test/misc.lua: fix sysctl test to be run