Threading refactoring

Tons of changes:
 - simplified serialization and deserialization of PDU objects
 - removed all unnecessary intermediate class for data (only PDU (+items) and DIMSE are left)
 - changed the way inter-thread communication into proper message queue
 - minor/major refactoring of existing classes
 - more streamlined exception handling

Library now works much faster (due to removal of redundant data transformation for each PDU and DIMSE and streamlined communication between threads)