I think putting the representation first is rather odd, as it will not be the most common way the routine is called.  Surely,
```
SphericalRepresentation(Longitude(...), Latitude(...), Distance(...))
```
should work without naming the parameters!

My sense would be to put `representation` last, so one can use `SR(representation=other_repr)`, but allow `lon` to be one, so `SR(other_repr)` works as well.  Note that this is not that dissimilar from what is done in `Time`, where `jd1` can be a time object (which would look rather odd if one explicitly called it with `Time(jd1=other_time)`)