Keep the behavior consistent when mutable is an empty dictionary
`mutable` can be an empty dictionary when the network has no mutable states. In this case, `apply` should return another state even though an empty state was provided. This is the expected behavior of the API, and enables a unified approach for multiple architectures, with or without mutable latent states. The current application simply equates empty state and False, and return no state in the output. This can be surprising to many new users.