Fixed severals bugs

Fixed zg_context_new_graph_from_string(ZGContext *, const char *) by fixing the constructor PdFileParser::PdFileParser(std::string) which was not initializing the 'pos' member, leading to the string being partially parsed or not parsed at all.

Fixed PdGraph::resolveFullPath(const char *) returning NULL when the graph as no parent whereas it should return a std::string

Fixed zg_graph_unattach(PdGraph *graph) directly calling PdGraph::attachToContext(bool) instead of calling PdContext::unattachGraph(PdGraph *). Also fixed PdContext::unattachGraph(PdGraph *) not removing the graph to its graph list.

Implemented MessageSoundfiler method, now it works but only support the read command

Fixed DspObject::getConnectionType(int) always returning DSP where it could be a MESSAGE outlet
Ahh, I see. In that case when you write your `DspThreshold` object, declare it as `DspThreshold(2, 1, 2, 0)` (if this is a object with two inlets, but the left one can take signal and control) or `DspThreshold(3, 1, 2, 0)` (if the left inlet should be signal only) and override the `getConnectionType` function to return `MESSAGE`. Don't add non-general behaviour `DspObject::getConnectionType()`.