Added the requirement to specify the context in which the limits will be applied

The original code only modified /etc/security/limits.conf.  This has the side
effect of disallowing limits to be set by particular modules.  This means that
you have to edit the limits for every single node/role/whatever that uses a
particular module that need/requires/desires a limit to be set.

The changes allow you to specify the 'context' in which the limit will be
applied.  The context is actually the name of the file that will be placed in
/etc/security/limits.d.  To keep the original behavior, set the context to
'limits.conf'.  The changes will be applied to /etc/security/limits.conf.

As a side effect, this means that the structure of the hiera data is changed.
For the original behavior, it now looks like:

  limits:
    'limits.conf':
      '*':
        nofile:
          soft: '2048'
          hard: '8192'
        nproc:
          soft: '20'
          hard: '20'
      'myuser':
        nofile:
          soft: '4068'
          hard: '8192'
      '@mygroup':
        nproc:
          hard: '50'
changed how domain is derived

Since we are now allowing multiple calls to limits (each one resulting in a
separate file), we have to be careful in how we define domain so we don't
have name/title collisions.