Bug 1076217 - Making the tc outbound settings configurable

Instead of hardcoding smtp related tc settings they can now be declared in
resource_limits.conf as follows:

[tc_outbound_limit 1]
  port=587
  rate=128kbit
  ceil=256kbit

[tc_outbound_limit 2]
  port=25
  rate=12kbit
  ceil=24kbit

[tc_outbound_limit 3]
  port=465
  rate=12kbit
  ceil=24kbit

This now allows additional tc settings to be created as well.  The previous
defaults have temporarily been added to the Config::Cgroups class to facilitate
the transition.  Eventually they will be removed to allow admins to easily
specify no rules (therefore disabling traffic control).

The resulting rules are exactly the same as before.  Namely, a class is created
for each combination of rate and ceiling.  It's then linked to the
corresponding port by the flowid's minor number.

It's important to note that this approach uses the inifile group syntax in an
effort to avoid any sort of special parsing.  Any group with
'tc_outbound_limit' anywhere in the name will match and everything else is
simply added to make the group unique.  Therefore the following would all
technically be valid:

[my_tc_outbound_limit]
  port=465
  rate=12kbit
  ceil=24kbit

[ tc_outbound_limit_A]
  port=80
  rate=12kbit
  ceil=24kbit

I wanted to avoid having to parse something like:

tc_outbound_limit.1="22,12kbit,24kbit"

Adding labels to the multivalue setting would only make the parsing more
rediculous.  Using groups allows for easy addition of new settings.
Adding error checking for outbound tc settings
Adding a function test for outbound traffic control
Update README.md
Merge pull request #5109 from brenton/BZ1076217

Merged by openshift-bot