Add UPnP basic management services support
BasicManagement: Implement NSLookup, improve BMTest
BasicManagement: Handle error cases like spawn failure
BasicManagement: remove unused variable
BasicManagement NSLookup: use ExecutionState for canceling
GasicManagement: Use ExecutionState for TestState UPnP variable
BasicManagement: Fix test type comparisons

Now BMTest implementations implement two properties:
method_type ("NSLookup")
results_type ("GetNSLookupResult")
BasicManagement: Fix NSLookup input variable types
BasicManagement: Wait for both (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.
BasicManagement NSLookup: handle another case of unresolved name server
BasicManagement: Update ID list state 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.
BasicManagement: Use rygel coding style

* Use 'this' to refer to object variables
* line length
* empty lines before break/return/etc.
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.
BasicManagement NSLookup: actually return additional_info
BasicManagement Ping: add ping command support

- 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
BasicManagement: handle 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.
BasicManagement Ping: simplify 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.
BasicManagement NSLookup: handle default repetition and timeout values

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.
BasicManagement: Add tests history limit

- 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.
BasicManagement: Fix Ping class constructor parameters order

- Ping test class constructor parameters were not correctly
ordered.

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