Enabled testing of pattern in build log

It is now possible to provide a URL to a build log
in the text box used for matching against the pattern
in a build log indication. A drop down list is used
for selection of how to treat the text in the text
box - as a plain text or as a build URL. When a URL
is given, the matching is done against the log of
the build with the given URL. The first matching
line to be found, if any, is printed.

If the failure cause management page is entered
from a project page, the URL to the latest
failed build for the project is pre-written
in the text box, if the URL can be found.

Change-Id: Ia2cc4d5d91fd93bb8b7289211ce477c11b5000ee
Improved JUnit testing of BuildLogIndicationTest

BuildLogIndicationTest.java was expanded with
tests for matrix job url:s and url:s ending
with lastbuild, lastSuccessfulBuild,
lastFailedBuild and lastUnsuccessfulBuild.

Also, BuildLogIndication.doMatchText() was changed
to accept url:s containing /./, e.g.

http://jobs/testjob/./1/

Change-Id: Id42ebcdaa9aad9765cf734653f36b37ec82bb210
Resource handling fix for matrix projects

The resource handling fixes for the icons didn't
work for matrix projects, this change fixes that.

Change-Id: I5fa60b7a69c740b396329bcb9212ab34ff8d1833
Merge remote-tracking branch 'origin/master' into i

Conflicts:
	src/main/java/com/sonyericsson/jenkins/plugins/bfa/PluginImpl.java
Fix for annotations

Problems were found when build logs were
longer than what could be shown on one page.
This change fixes that problem.

Change-Id: Ifde85f09b9b104b0532915990238a44fc7d7faac
Fix for serialization of the matrix aggregated build action

The issue is that MatrixRuns are there own item group and is not
serialized together with the main matrix build, the action contained
references to the runs so they got serialized into the main build
with the action.
When the action was deserialized those runs would become their own
separate object instances with no knowledge of the combination
they belonged to, wich would cause several strange behaviours.
We solve this by storing string id's of the run combinations and
find the "real" runs when called for.
But because that the runs are separate item groups they are not
yet available in the object graph when the action's readResolve
method is invoked after deserialization, so converting from run
instance to runId is a bit cumbersome to fix there.
So the conversion is performed in a separate thread pool.

Change-Id: I4b19b8c4b53551e68ff43fd91e4d7b9401316206