Code cleanup: prettier cache keys

Computing cache keys with join() is a bit prettier than lots of
concatenations. Only done for cache keys with at least two variable
compontents.
Fix PGP unit tests

gpg version 1.4.11 (and maybe others) skips private keys without public
keys when listing keys.

To avoid this scenario in the tests, add the public key immediately after
adding the private key
Merge branch 'cachekey-cosmetics' of https://github.com/moritz/otrs
Fixed: Customer search during ticket creation - OTRS shows details also if no customer match the search (bug#10222).
Squashed commit of the following:

commit a098f3d99b847d5338a0ec3ae1ec2d7748e91578
Author: s7design <otrs@s7designcreative.com>
Date:   Tue Feb 4 23:47:16 2014 +0100

    [Bug 10222] Customer search during ticket creation - OTRS shows details also if no customer match the search

    Deleted default value for parameter CustomerUserID in function GetCustomerInfo
- Added new options to check dynamic fields of type text on patterns relating to error messages (translated), if they do not match.
- Added new options to restrict dynamic fields of type date/datetime on future or past dates.
Fixed: Queue field doesn't appear in ProcessMgmt (bug#9787).
Merge branch 'bugfix-crypt-test' of https://github.com/moritz/otrs
Fixed: No use Ticket::Hook in CustomerTicketZoom (bug#10285).
Squashed commit of the following:

commit 9588fb77414336e6a19a8496727c2503274fe22f
Author: s7design <otrs@s7designcreative.com>
Date:   Wed Feb 5 15:35:50 2014 +0100

    I fixed like you suggested. Thanks for help, I knew that JavaScript was not good option. But with your help all is easier:)

    Thanks Martin
    Zoran

commit 6204bd53adaff245509bb6a833fb3141f9064ce8
Author: s7design <otrs@s7designcreative.com>
Date:   Wed Feb 5 15:01:53 2014 +0100

    [#10285]No use Ticket::Hook in CustomerTicketZoom

    Added default value "Ticket#" for Ticket::Hook if isn't set in config

commit c2be49b83ae4b89640084d5e283c49d2704e23f4
Author: s7design <otrs@s7designcreative.com>
Date:   Wed Feb 5 14:49:20 2014 +0100

    [10285]No use Ticket::Hook in CustomerTicketZoom

Conflicts:
	Kernel/Output/HTML/Standard/CustomerTicketZoom.dtl
Fixed UnitTest EditFieldRender.t.
Fixed: Customer email suddenly treated by OTRS as 'email-internal' (bug#10182).
Added UnitTest in Replace.t.
Fixed bug#10245 - Use of uninitialized value {Value2} in string.
Fixed article attachment links.
Fixed bug#10295 - DateInFuture / DateNotInFuture validation.
Fixed CHANGES.
Updated CPAN module XML::Parser::Lite to version 0.719.
Updated CPAN module SOAP::Lite to version 1.11.
Removed CPAN module Apache2::Reload from Kernel/cpan-lib/ because this module is included in mod_perl 2.0.5 and later.
Updated CPAN module CGI to version 3.65.
Updated CPAN module Crypt::PasswdMD5 to version 1.40.