I am new to ethereum and have been reading about all the new things in ethereum with respect to bitcoin's blockchain. I have read about the GHOST protocol for using secondary blockchains instead of throwing them away and the merkle-patricia tree. I dont really understand what exactly this new data structure is solving except that it stores each block's state as hash as a node. So the tree changes if any node has any changes in them.
What exactly are the problems in bitcoin's idea of blockchain that this new data structure is solving?
Where is the implementation for all this protocols and the data structures? Is it in mist or the clients that are available in various languages?