Add UPnP basic management services support

BasicManagement:2 service [1] contains a bunch of tools to indicate
overall device status, perform maintenance functions (e.g. reboot) and
to run some diagnostic tools (e.g. Ping). This commit is the service
skeleton without the tools.

[1] http://upnp.org/specs/dm/UPnP-dm-BasicManagement-v2-Service.pdf
core: Implement BasicManagement NSLookup, improve BMTest
core: Handle BasicManagement error cases like spawn failure
core: remove unused BasicManagement variable
core: BasicManagement NSLookup: use ExecutionState for canceling
core: Use BasicManagement ExecutionState for TestState UPnP variable
core: Fix BasicManagement test type comparisons

Now BMTest implementations implement two properties:
method_type ("NSLookup")
results_type ("GetNSLookupResult")
core: Fix BasicManagement NSLookup input variable types
core: Wait for both BasicManagement (out/err) streams to EOF

Sometimes stdout is closed before an error message is sent to
stderr: wait for both to close before finishing one iteration.
core: BasicManagement NSLookup: handle case of unresolved name server
core: Update BasicManagement test ID list variables

- Use HashMap for the the Test ID/Test active ID list.
- Update the Test ID/Test active ID list state when a test is added, completed or removed.
- Cosmetic: use long filename for files and classes. e.g: rygel-bm-test.vala -> rygel-basic-management-test.vala
- Cosmetic: copyright headers cleanup.
- Compute Test ID/Test active ID HashMap on fly when they have to be provided to gupnp layer.
- Initialize device status with current time and OK status.
core: Use rygel coding style in BasicManagement

* Use 'this' to refer to object variables
* line length
* empty lines before break/return/etc.
core: BasicManagement: remove unused constants

Timeout and repeat_count make sense to be limited, but the address
and hostname string lengths not so much: The former depend on
input from UPnP client, the latter depend on nslookup output.
core: return additional_info in BasicManagement NSLookup
core: Add ping command support to BasicManagement

- Add the ping command support: build and call the system command,
parse its result output.
- Fix a typo in update_test_ids_lists() funtion in file
rygel-basic-management.vala
core: Handle BasicManagement argument errors consistently

Return Error_Other if the arguments are not within implementation
specific limits. Test initialization is no longer handled by specific
init() function: instead the tests constructed() checks argument
values and sets a enum InitState to proper value.

The InitState enum exists so that ExecutionState could map 1:1 to the
UPnP state variable without ugly hacks.

This approach is simpler for BasicManagement (one less method call) and
produces arguably better results: at least the caller of the UPnP api
now gets meaningful error messages.
core: Simplify BasicManagement Ping state handling

The base class will normally handle execution state: setting it to
complete can be used to skip iterations but Ping does not need that.
core: Handle default parameter values in BasicManagement NSLookup

Add property setters for repetition and timeout, so the default values
can be used for value '0'. repetitions still uses base class 'iterations'
variable internally.

Rename variables in BasicaManagement to be clearer.
core: Add BasicManagement test history limits

- Add a per test type (ping/nslokkup/traceroute) information storage
limit.
- Limit is set to 10 test per type of test by default.
- When the limit is reached, the oldest test of the same type is removed.
- Per test types linked lists of test ids are used to know which
test of a given type is the oldest.
- If the test to be removed is active, it is cancelled and also removed
from the active tests list.
core: Fix BasicManagement Ping class constructor parameters order

- Ping test class constructor parameters were not correctly
ordered.

Fix issue: https://github.com/jku/rygel/issues/15