output.  The
      dictionary keys are (name, arch) tuples for the package,
      and the associated values are the package objects
      themselves.
:param columns: a tuple containing information about how to
   format the columns of output.  The absolute value of each
   number in the tuple indicates how much space has been
   allocated for the corresponding column.  If the number is
   negative, the text in the column will be left justified,
   and if it is positive, the text will be right justified.
   The columns of output are the package name, version, and
   repository
:param highlight_modes: dictionary containing information
      about to highlight the packages in *highlight_na*.
      *highlight_modes* should contain the following keys::

         'not_in' - highlighting used for packages not in *highlight_na*
         '=' - highlighting used when the package versions are equal
         '<' - highlighting used when the package has a lower version
               number
         '>' - highlighting used when the package has a higher version
               number
:return: number of packages listed
)