ENH: change BlockManager pickle format to work with dup items

Old `BlockManager` pickle format stored items which were ambiguous and not enough for unpickling if non-unique.

After recent BlockManager overhaul, #6745, it's no longer necessary to share items/ref-items between Blocks and their respective managers, so Blocks can now be safely pickled/unpickled on their own.

Also, I've took the freedom to make the format more "extendable" by storing the state as a dictionary rather than a tuple: 
```
{ 
    "version": "0.14.1",
    "axes": [ax0, ax1, ..., axN],
    "blocks": [blk0, blk1, ..., blkN]
}
```

The version field is there to note the first version to implement this format.

This PR should close #7329.