Add a `fitshead` script to display FITS headers

I propose to add a `fitsheader` script to astropy for the purpose of conveniently inspecting the header(s) of a FITS file from the command line.

The proposed script is similar to existing tools such as `fitshead.csh` (Starlink) or `gethead` (WCSTools), but those tools are less common on an astronomer's computer these days. I believe that the use-case of inspecting the headers of a FITS file is *very* common and warrants a command-line script, which would be very powerful when used in combination with `grep`, `sed`, etc...

Proposed usage:
```
usage: fitsheader [-h] [-e hdu] [-c] filename [filename ...]

Print the header(s) of a FITS file. By default, all HDU extensions are shown.

positional arguments:
  filename           path to one or more FITS files to display

optional arguments:
  -h, --help         show this help message and exit
  -e hdu, --ext hdu  specify the HDU extension number or name
  -c, --compressed   for compressed image data, show the original header which
                     describes the compression rather than the data
```

Default behaviour:
```
$ fitsheader astropy/io/fits/tests/data/table.fits 
# HDU 0 in astropy/io/fits/tests/data/table.fits:
SIMPLE  =                    T / conforms to FITS standard                      
BITPIX  =                    8 / array data type                                
NAXIS   =                    0 / number of array dimensions                     
EXTEND  =                    T                                                  
END

# HDU 1 in astropy/io/fits/tests/data/table.fits:
XTENSION= 'BINTABLE'           / binary table extension                         
BITPIX  =                    8 / array data type                                
NAXIS   =                    2 / number of array dimensions                     
NAXIS1  =                   24 / length of dimension 1                          
NAXIS2  =                    3 / length of dimension 2                          
PCOUNT  =                    0 / number of group parameters                     
GCOUNT  =                    1 / number of groups                               
TFIELDS =                    2 / number of table fields                         
TTYPE1  = 'target  '                                                            
TFORM1  = '20A     '                                                            
TTYPE2  = 'V_mag   '                                                            
TFORM2  = 'E       '                                                            
END
```

A specific extension to display can be specified using its HDU number, its `EXTNAME`, or its `EXTNAME,EXTVER` identifier, e.g.:
```
$ fitsheader --ext "AIPS FQ" astropy/io/fits/tests/data/zerowidth.fits 
# HDU ('AIPS FQ', 1) in astropy/io/fits/tests/data/zerowidth.fits:
XTENSION= 'BINTABLE'           / Extension type                                 
BITPIX  =                    8 / Binary data                                    
NAXIS   =                    2 / Table is a matrix                              
NAXIS1  =                   24 / Width of table in bytes                        
NAXIS2  =                    1 / Number of entries in table                     
PCOUNT  =                    0 / Random parameter count                         
GCOUNT  =                    1 / Group count                                    
TFIELDS =                    5 / Number of fields in each row                   
EXTNAME = 'AIPS FQ '           / AIPS table file                                
EXTVER  =                    1 / Version number of table                        
TFORM1  = '1J      '           / FORTRAN format of field  1                     
TTYPE1  = 'FRQSEL          '   / Type (heading) of field  1                     
TUNIT1  = '        '           / Physical units of field  1                     
TFORM2  = '1D      '           / FORTRAN format of field  2                     
TTYPE2  = 'IF FREQ         '   / Type (heading) of field  2                     
TUNIT2  = 'HZ      '           / Physical units of field  2                     
TFORM3  = '1E      '           / FORTRAN format of field  3                     
TTYPE3  = 'CH WIDTH        '   / Type (heading) of field  3                     
TUNIT3  = 'HZ      '           / Physical units of field  3                     
TFORM4  = '1E      '           / FORTRAN format of field  4                     
TTYPE4  = 'TOTAL BANDWIDTH '   / Type (heading) of field  4                     
TUNIT4  = 'HZ      '           / Physical units of field  4                     
TFORM5  = '1J      '           / FORTRAN format of field  5                     
TTYPE5  = 'SIDEBAND        '   / Type (heading) of field  5                     
TUNIT5  = '        '           / Physical units of field  5                     
NO_IF   =            1                                                          
END 
```

A user-friendly error message is displayed when things go wrong:
```
$ fitsheader -e 999 astropy/io/fits/tests/data/table.fits 
ERROR: astropy/io/fits/tests/data/table.fits: Extension #999 not found. [astropy.io.fits.scripts.fitshead]
```

If this is deemed to be a worthwhile addition, I imagine having to add some documentation to `astropy/docs/io/fits/usage/scripts.rst`?