The above `if` to distinguish between `start, end` or `Timerange` is probably used in many other places in Sunpy.

Could not we just do this check as part of `timerange`?  In this case the condition `end < start` is just checked for the inputs that are not as part of a `timerange`, however, notice that `timerange` as it is it allows `end < start`

For example:
```python
negative_timerange = TimeRange('2010-01-01', '2009-01-01')
print 'start time: {start} > end time: {end}'.format(start=negative_timerange.start(),
                                                                            end=negative_timerange.end())
```
```
start time: 2010-01-01 00:00:00 > end time: 2009-01-01 00:00:00
```
And probably this could cause problems for the `_get_goes_sat_num(start, end)`