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! 
maybe we should
`return Longitude(self.meta.get('hgln_obs', 0.) * u.deg)`