Bug 10807: Add an authority search history for the OPAC

Like biblio, this feature provides an authority search history.
This history is available for connected and disconnected user.
If the user is not logged in Koha, the history is stored in an
anonymous user sessin.

The search history feature is now factorized in a new module.

This patch adds:
- 1 new db field search_history.type. It permits to distinguish the
  search type (biblio or authority).
- 1 new module C4::Search::History. It deals with 2 different storages:
  DB or cookie
- 2 new UT files: t/Search/History.t and t/db_dependent/Search/History.t
- 1 new behavior: the 'Search history' link (on the top-right corner of
  the screen) is always displayed.

Test plan:
 1/ Switch on the 'EnableOpacSearchHistory' syspref.
 2/ Go on the opac and log out.
 3/ Launch some biblio and authority searches.
 4/ Go on your search history page.
 5/ Check that all yours searches are displayed.
 6/ Click on some links and check that results are consistent.
 7/ Delete your biblio history searches.
 8/ Delete your authority searches history searches.
 9/ Launch some biblio and authority searches
10/ Delete all your history (cross on the top-right corner)
11/ Check that all your history search is empty.
12/ Launch some biblio and authority searches.
13/ Login to your account.
14/ Check that all previous searches are displayed.
15/ Launch some biblio and authority searches.
16/ Check that these previous searches are displayed under "Current
session".
17/ Play with the 4 delete links (current / previous and biblio /
authority).

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All patches together pass QA script and tests.
Also, new tests in t/db_dependent/ pass.

Tested in all 4 OPAC themes, being logged in and anonymous.
Anonymous search history will be appended to personal search
history after logging in.
Also verified that cleanup_database still purges search history,
now also including the authority searchs.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) wording tweak; take OpacAuthorities into account

This follow-up makes two changes:

1) Change "biblio" to "catalog" when referring to non-authority
   searches.
2) Make display of the authority search tab dependent on the
OpacAuthorities system preference. If OPAC authority searches are
disabled we shouldn't show a tab which will always be empty.

To test, view the OPAC search history page with the OpacAuthorities
preference both on and off.

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) Change the GPL version to v3+

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) fix UT t/db_dependent/Search_SearchHistory.t

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) make the new field search_history.type should be a varchar(16)

varchar(255) is too wide for "biblio" and "authority" values.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Bug 10807: Add an authority search history for the OPAC - bootstrap

Patch for the bootstrap theme

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) change wording of tabs

Changed the tabs from Catalog and Authority to
Catalog searches and Authority searches to be a bit more specific.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: DBrev 3.15.00.046

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) update DBIC schema classes

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) use 24-hour time when storing search times to session

This ensures that if an anonymous session is converted to a logged-in
session, that search history times from the anonymous session get
stored corectly.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10807: (follow-up) remove comment about routine that is no longer present

Signed-off-by: Galen Charlton <gmc@esilibrary.com>