Manager client package locks: allow more granular control over locks

The official implementation always overwrites zypper's lock file forcing spacewalk to send the complete list of packages to lock every time.

This pull request makes possible to:
  * read the existing locks.
  * add and remove locks.

The code is pretty simple, which means there are a couple of limitations to keep in mind:
  1. Previous comments inside of the lock file are dropped.
  2. The code is going to add/remove locks written in "spacewalk-style", which is something like:
    ```

      type: package
      match_type: exact
      case_sensitive: on
      solvable_name: < solvable name sent by spacewalk >

    ```
I don't think these should be considered regressions compared to what the official code is currently doing. In fact the existing code has the same drawbacks.  

## Stuff left to do

Once these changes are merged we need to upgrade the spec file of the `zypp-plugin-python` to install the directory `python/zypper` under python's modules root.