Maps integration with astropy.wcs and units

Hi all! 
This will be the last PR as a part of my GSoC project. Few things to be noted : 
1) This contains a property called `wcs` which creates a `astropy.wcs` object everytime a `sunpy.map.Map` object is created. 
2) Attributes like `dsun` or `center` now returns a unit associated with them. 
3) Functions like `pixel_to_data` or `rotate` now should be given a `astropy.unit` as input.
4) Map headers(I am not sure whether I saying this right) won't return a quantity. For example
    `aia.meta['CRPIX']` wont return a quantity.
5) `sunpy.wcs` functions now returns and accepts quantity. I believe this will be changed when @VaticanCameos project is done and both could be integrated further!

@Cadair, @DavidPS, @ayshih please review it and lemme know if it requires modifications and whether I did what we discussed in the meeting. 
Thank you! 
Yea, not only this, but I believe there are other things that could would break `map` class. Tests doesn't really cover all the scenarios, so it would be for the best we use all this locally and merge when everything seems right.