Signal senders can give positional & keyword arguments to SignalsManager.emitSignal() that are passed to callbacks
Merge remote-tracking branch 'lootr-github/feature/signalsmanager'
Introduce some helper classes for MVC windows & dialogs.

The two new classes, NetzobAbstractController and NetzobAbstractView,
allow to create some basic window that relies on GtkBuilder/Glade.

Change-Id: Iab92d129ba1df39071a10e8c6440b77dc1617a6e
Add some helper classes for "Perspective Windows".

The two new classes are NetzobPerspectiveController &
NetzobPerspectiveView.

These two new helpers rely on the previouly included
NetzobAbstract{Controller,View} to work, but offer some specific
function that are used by our perspective mechanism (override main
menu, etc.)

Change-Id: Id193843296f88c968f51bd3246167e791b3ebaca
In NetzobMainView, don't try to load perspectives action groups / UIManagers if none of them is declared.

Change-Id: Ifdb1d67cf9289a7518a5363f91dc12cd06470099
When switching the main view's panel, call for 'deactivate()' function of the to-be-replaced controller.

This commit includes the modifications of the currently defined panels
(Vocabulary View, Grammar View and Simulator View). In theses views,
the 'deactivate()' functions don't do anything.

Change-Id: I776d622a1225ec783399704bdfd0cd032f226e45
Store absolute paths in Workspace object, this fix an issue with the ImportedTraces class.

Change-Id: I57181856f1aa8b3f67ed6bbdc5bf927c19a4f03c
Simplify ImportedTraces.loadTrace() code.

Change-Id: Icfa13e7216067ab868c99c270e28eee22e608eaa
Update Workspace class to store ImportedTraces in a dict.

ImportedTraces are now stored in a dict, which allow to retrieve only
one item, instead of the complete collection. Code is backward
compatible.

Add a new 'getImportedTrace()' which takes an UUID as a parameter and
return the corresponding ImportedTrace from the dict.

Change-Id: Ie5214770eb9ef730d7d8949b0f6bbb99ee57d234
Workspace: Raise an exception when the requested trace is not available

Change-Id: I5bbba4c7cc3e05123461066ce37bb00b521b7709
Add a new ImportedTraceException in the ImportedTrace file.

Change-Id: I6e2a3a98a3c21918ef2638c351633e9311227d5e
In the ImportedMessages class, store 'sessions' and 'messages' in a dict().

Session and Message in ImportedTraces are now stored in a dict, which
allow to retrieve only one item, instead of the complete
collection. Code is backward compatible.

Change-Id: Idc5a05491cc4dc608aea34eb18afb9484ddb7eda
Add a new function, ImportedTrace.removeMessage().

That function is in charge of removing a specific message from message
and session lists.

Change-Id: I3b7870294fed570e0195ccdf9ad9b0e7fd2e5057
Add a new function, ImportedTrace.removeSession().

Tha function is in charge of removing a specific session and messages.

Change-Id: I30f39ee7a15ba2742192d2a87d72a640e5fcf846
Add __str__ functions for ImportedTraces and AbstractMessage

Change-Id: I62060a5718655ee53c498b611efe84c37ae4a7cf
Add a function that helps to clone an AbstractMessage.

This functions is in charge of copying the AbstractMessage using
copy.copy and then to change its id. This prevent conflicts between
traces and sessions.

Change-Id: I680ce96613d2356d07cd04f5c5b7e1665a33992d
Add a new SessionException in the Session file.

Change-Id: Ia8d3817b11ff6a92df848d1b0231915c7ba385f5
Add Session.removeMessage() that remove a specific message from a session.

Change-Id: I6c009cabf83ddc211762d24a852f5802f1463700
When importing new messages in a project, set the newly created session the its of them.

ConfirmImportMessagesController is the last step of the generic import
process. When validating the import, a new session is created and each
message is added to it. With this fix, the messages are also modified
to have the new session as a reference since message and session are
double linked.

Change-Id: Ibb1e42bd44c135c044580535f2b8de04844895c8
Add a new 'merge-item' icon and register it in the IconFactory

Change-Id: Iead1f2a7a2cbe3a132198cd2750b036f52702f29