Adding Metadata to Anchor

Some time ago, I created this pull request on Anchor, because I saw an opportunnity to add Metadata parsing since the Anchor team was already adding Metadata program CPI calls. Initially I thought it was going to be as simple as looking at one of the existing Candy Machine contracts and copying the code, but it turned out to be a bit more complicated than that. Turns out this was more of a communication of parties task, because as it was noted by Armani, the initial implementation of the deserialization of the Metadata was not safe enough due to the lack of a series of verifications, which led me to reach out to the guys at Metaplex to see if they could help me out with the implementation of the Metadata parsing.

This ended up in the implementation of the safe_deserialize trait which is implemented now by most of the Metadata program's accounts, which is fit to be used externally.

After going back and forth a little bit with Sam(Creator of Metaboss), we ended up with a solution that was good enough for the time being, and I was able to implement the Metadata in a more straightforward way; This also taught me how to add Non-Anchor account deserialization to any Anchor project, which is and can be a very strong SDK enabler.