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! 
As it is now the grid is just in heliographic, so maybe we should specify that in the docstring. 

@kaichogami, could you just writing it in the docstring? when explained `grid_spacing` add the following:
`Angular spacing for heliographic longitude and latitude grid.`