Start to implement a replacement for Bugzilla only integration

Targeting to allow integration with multiple Bugzilla servers,
and to allow link creation by IDs to any other service to which
such link makes sense (e.g. Gerrit patches)

Once done the administrator can define multiple services to which
links/integration can be done. In addition to Bugzilla handler will
implement a handler for providing links only to external services
by some IDs

config/bugzilla.yml will be removed but if it exists and the new
configuration file does not then Bugzilla config will be used and
things work just the way the have done so far.
Use new external service config file

Changed to initializer to handle new config file and, if missing, the
old bugzilla.yml config file.

In addition renamed the constant and took it in use in existing code.
Currently the first element is used in place of the old BUGZILLA_CONFIG,
i.e. defining multiple services has no effect on the functionality.
Moved Bugzilla code to a service module

Since eventually we're going to a) need to fetch bug info from multiple
Bugzilla servers and b) supporting also other services than Bugzilla,
moved the code communicating with Bugzilla from controller to a module.
Return real JSON data from BugsController

Instead of returning a bunch of CSV rows as JSON, convert the data
to a format that actually tells what it contains.
Store the actual ID with prefix to an attribute

We will need to keep the bug IDs with prefixes but the prefix is not
very interesting on the UI so store the full ID to data-id attribute of
the element.
New BugsController

Implemented a BugsController (to be renamed) that will use the prefixes
etc. defined in the new configuration file. At this point fetching data
from different Bugzilla implementations work, but the link on the page
is still incorrectly pointing to MeeGo Bugzilla regardless of prefix.
Separate helper methods for external services

Going to need [[BZ#1234]] parsing in multiple places, thus moved them to
a separate helper module (now placed under services because it didn't
seem like something that should be placed in helpers)
Markup formatting with multiple services

The markup formatting methods, both in backend and frontend, can now
handle multiple services (prefixes, urls).
Test report edit mode with two Bugzilla services

Now that we support multiple external service (Bugzillas only so far),
test that the report editing works properly.
Test backend markup parsing with two Bugzilla services

Test that the backend also can handle bug links (both [[xxxx]] and full
uris) when there are multiple services defined.
Rename controller and API

Turning Bugzilla things into a bit more generic External Services, thus
renaming things to more generic ones.
Set the links correctly for feature headings as well
Renamed also client side code

Less references to Bugzilla, more to external services. CSS classes and
handlers still needed to fix.
Renamed also CSS and related things

Instead of using CSS class bugzilla use ext_service.
Correct IDs and URI for report JSON view

Return the full bug ID (prefix included) as well as a link to the
correct service when requesting a JSON for a test report.
URIs using sprintf format

Bugzilla URIs work fine with just appending the IDs, but that is not the
case with all other services. Changed the link formats to use sprintf
(one replacement only) so the ID can be placed in any part of the
URI.
Markup reference informs about different services

Now that linking can be done against multiple services the markup
reference next to edit dialogs needs to show the syntax for each of
them. Otherwise user would have to remember the correct prefix.
Check ID placeholder exists in uri and link_uri

It's easy to forget to add %s - check in initializer and refuse to start
if %s is missing.
Nicer default prefix for old config

Added also link to documentation related to the new configuration format.
Added the dummy link "integration"

Added "integration" that works by giving a link only by ID. This feature
exists only to have a shortcut with which users can link to e.g. Gerrit
patches instead of needing to provide a full link. As usual this feature
is originated from a user organization need.