[Review]: Change VSO QueryResponse.show() to __str__

This is a replacement of sunpy/sunpy#1156.

This now also uses Astropy table for printing.
Could not we do a lambda function for these two? Just to avoid a bit of repetition:
```python
time_exist = lambda time: [datetime.strftime(parse_time(time), TIME_FORMAT)] if record.time.start is not None else ['N/A'])
record_items['Start Time'].append(time_exist(record.time.start)
```
Also, why they are appended as a list inside `record_items['Start Time]'` and the other columns are just appended as elements?
It seems that it doesn't affect when I've run it though.