WIP: CIFTI2 spec reader and writer

- [x] CIFTI2 reader
- [x] CIFTI2 writer
- [x] tests
- [x] integration with nifti2
Aha.  Sorry - I wasn't reading this right.  I don't think that Nifti2Image.from_file_map should return anything other than a Nifti2Image - unless there is really no other way to do it.   By default presumably people will be using the load function - I think that's where the logic should go to select between nifti2 and cifti.