Move the UDF *.a and *.la files to the RPM devel package

The static libraries from the packaged UDFs were wrongly packaged to the
shared package, when they belong to the development files. Additionally,
this was introducing spurious conflicts with the 5.6 shared package
(which suffers from the same bug).
Do not pack the libmysqlclient.so.16 library link in the shared package

Do not pack the unversioned symlink in the shared package, since it gets
created by ldconfig(8) after install anyways. This helps not having
conflicts with upper versions of the library.
Remove the mysql.info file

Remove the mysql.info file from the distribution. Besides it being
pointless (it was just a link to the online documentation), it created
conflicts between the 5.5 and 5.6 versions of the library.
Do not package the libmysqlclient.so.18 links in the library packages

Do not package this links since they are created by ldconfig(8) anyway
after installation. This will prevent conflicts between higher versions
of the libraries.

For debian, this also means adding a manual link since on install links
that are not pointing nowhere won't be created, and the fully versioned
libmysqlclient_r library is a symbolic link to the unversioned library,
instead of to the fully versioned.
Do not pack the libmysqlclient.so.18 library link in the shared package

Merge the change from 5.1
Removal of libmysqlclient-dev package

libmysqlclient-dev is now provided by the 5.6 branch, and this package
has become libmysqlclient18-dev. The former libmysqlclient18-dev package,
which used to be an empty package depending on libmysqlclient-dev, was
now removed.
Fix for https://bugs.launchpad.net/percona-server/+bug/1233354 - enforce-storage-engine causes mysqld to error on shutdown
  Fixed by calling plugin_unlock in plugin name and default checking in mysqld.cc where enforce_storage_engine name is being validated.

Fix for https://bugs.launchpad.net/percona-server/+bug/1236938 - enforce-storage-engine should not apply when server started in bootstrap or skip-gtant-tables
  Fixed by ignoring enforcement if opt_bootstrap || opt_noacl.
Fix for https://bugs.launchpad.net/percona-server/+bug/1167487 - Enhanced option modifiers do not deallocate memory | Valgrind: getopt_constraint_get_min_value and getopt_constraint_find definitely lost / still reachable

Originally this was just written off as a known, one time leak, which is is, but the failure causes scripted testing to fail and is really just sloppy.

To fix, a new path needed to be created from mysqld main() through my_cleanup and into the my_getopt.c to properly free the options modifiers structures created and saved during option parsing.
A new function was created called handle_options_end() which is called from cleanup() in mysqld.cc. handle_options_end() calls getopt_constraint_deinit() to signal it that it needs to free its internal static data.
getopt_constraint_init() used to contain a static hash table and initialization flag. These were moved out to global scope so that getopt_constraint_deinit() could have access to them.

While testing, a bad memory read/write was discovered in the min and max constraints which caused a crash during freeing of the constraints structs on shutdown. That has been fixed.

While testing, discovered a bug that caused incorrect behavior, reported as https://bugs.launchpad.net/percona-server/+bug/1233294 - certain option modifiers do not have effect
The my_option_constraints hash is hashed on the option name. Option names are normalized ('-' made '_') before inserting into the hash since 'finds' get called from both main where names have not been transformed and from plugins and other places where the names have been transformed.
The issue is that the searches were performed with non-normalized names, so the find function would not find a record for the same option name (innodb_io_capacity vs innodb-io-capacity). It would then create a new record, transform the name and attempt insertion, which would fail silently due to duplicate.
The new record would be returned and used for that particular constraint setting but would be leaked because it did not exist in the hash. The constraing is then not 'recorded' so any attempt to set outside of the constraint would succeed.
Fixed by transforming the name before looking up the constraint in the hash.
Provide libmysqlclient-dev in libmysqlclient18-dev

Provide: libmysqlclient18-dev, so packages that depend on it for install
can be installed with this version of the library.

This fixes a bug introduced in the last revision, which renamed then
libmysqlclient-dev to libmysqlclient18-dev.
Automerge lp:~gl-az/percona-server/BT-23310-bug1218664-5.5
Automerge lp:~gl-az/percona-server/BT-23598-bug1167487-5.5
Merge from trunk in order to solve conflicts
Automerge lp:~ignacio-nin/percona-server/5.5-libmysqlclient.so