Now Acedia collections provide functionality of `Get...ByPointer()`
method (that allows to fetch values nested into several collection by
JSON pointers) for both `JSONPointer` and `Text` classes.
Previously, each use of `Get...ByPointer()` method caused convertion of
a `Text` into `JSONPointer`, even if used `Text` value did not change.
This patch allows to create `JSONPointer` once and them use that as a
parameter, which should be much faster.
Add method for checking whether certain `Text` is empty (`none` or has
zero recorded characters).
Add methods for converting and deallocation (in the same action) passed
`Text` value into the `string`.
Refactor signal/slots system for more efficieny and better user
interface that allows to disconnect receiver like so:
`OnEvent(receiver).Disconnect()`.
`Feature` is now derived from `AcediaObject` and has an optional ability
to spawn an auxiliary service to compensate (service provides it with a
relatively easy access to an `AcediaActor` object, which can store other
`Actor`s).
`AssociativeArray` by design does not manage keys, automatically
deallocating them, like it can with stored values. This patch adds a
parameter to `Empty()` method that allows it to deallocate all of the
used keys when deallocation all of the values.
As a side effect this patch also fixes a bug that broke
`AssociativeArray` after using `Empty()` method.
There wasn't actually any need for `InitializeStatic()` method. In fact
it could lead to problems. Now calling `StaticCosntructor()` is allowed
instead.