Deal properly with self.fields = []

We must distinguish self.fields = None (a value has not be set and should not be specified, allowing the defaults to be used), and self.fields = [] (a value has been set indicating that no fields should be returned)