Add filtering to Library Table managers (lp:#1780603)

[Original report](https://bugs.launchpad.net/bugs/1780603) created by **Gabriel Staples (ercaguy)**
```

Application: kicad
Version: 5.0.0-rc2-dev-unknown-f73b9a5~65~ubuntu14.04.1, release build
Libraries:
    wxWidgets 3.0.2
    libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Platform: Linux 4.4.0-112-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
    Boost: 1.54.0
    Curl: 7.35.0
    Compiler: GCC 4.8.4 with C++ ABI 1002
Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_SPICE=ON

------------------------------------

In Symbol Library manager and Footprint Library manager, allow sorting by
any column heading, including:
   - Row Number (default, ascending order: 1, 2, 3, etc as you go down)
   - Active
   - Nickname
   - Library Path
   - Plugin Type
   - Options
   - Description

   * Click each column heading to sort. Show either a small down arrow or
up arrow at the right edge of the heading to indicate if it is sorted by
this column and whether the sorting is ascending or descending. The
sequence will be like this: click a column heading once to sort ascending
(increasing in alphanumerical order as you go *down*, as indicated by a
*down-arrow* symbol), click a 2nd time to sort descending (decreasing in
alphanumerical order as you go *down*, as indicated by an *up-arrow*
symbol), click a third time to stop sorting by this column and go back to
default sorting, which is by Row Number (ascending in number as you read
down) The symbol for this will be a down-arrow symbol in the Row Number
column and either no symbols or a circle or dot symbol (developer's choice)
in all other columns. Click a 4th time to start back over, repeating this
cycle: ie: sort this column in ascending order again. Etc etc.

   * Retain sorting information in such a way that clicking one column then
another does a multi-column priority sort. Ex: clicking "Library Path" then
"Description" will sort first by Library Path, then re-sort by Description,
but if the description of many items is the exact same then they will still
retain their previous sorting information by Library Path. This way, you
will see all items with the same Description grouped together, sub-sorted
by Library Path. You get the idea.

   * Retain sorting information for the life of the main KiCad window being
open, but once KiCad is completely closed and then re-opened, revert back
to default sorting (by Row Number). This means that if the user opens the
Symbol Library manager then sorts how they want it, then close it, the next
time they open it it will retain its previously-sorted configuration until
the user completely restarts KiCad, at which point it will revert to
default sorting by Row Number.

   * Allow user to re-number rows: Add a button called "Re-number Rows".
When the user clicks it, it will bring up a pop-up window which says,
"Caution: all rows will be re-numbered from top to bottom as they are
sorted now. This cannot be undone. Are you sure you'd like to continue?"
User selects Yes, No, or Cancel (No and Cancel are the same thing, but many
users look first for a Cancel button whenever they see something they don't
like).
```

Story points: 6.0