text: Title: Add a `from_fixture` method to `BaseUser`
  Body: If you pass a password into the `BaseUser` constructor, it hashes it.
  
  ```python
  user = BaseUser(username="bob", password="bob123")
  >>> user.password
  pbkdf2_sha256$10000$bb353d7fc92...
  ```
  
  This is the expected behaviour, but it's problematic if you're passing in an already hashed password (it will get hashed again).
  
  An example use case is fixtures - you dump the users table, and end up with data like this:
  
  ```json
  {
      "user": {
          "BaseUser": [
              {
                  "id": 1,
                  "username": "bob",
                  "password": "pbkdf2_sha256$10000$abc123...",
                  "first_name": "",
                  "last_name": "",
                  "email": "bob@bob.com",
                  "active": true,
                  "admin": true,
                  "superuser": true,
                  "last_login": null
              },
          ]
      },
  ```
  
  We need a class method on `BaseUser`, called something like `from_fixture` (or some other, better name).
  
  ```python
  class BaseUser(Table):
      @classmethod
      def from_fixture(self, data: t.Dict[str, t.Any]) -> BaseUser:
         # Create a BaseUser instance, but bypasses the password hashing, as we can assume the password is already hashed.
          ...
  ```
  
  We should also raise a `ValueError` in the `Baseuser` constructor if someone tries to pass in an already hashed password.