text: Title: Allow searching for images
  Body: At the moment the `similar` clause only allows searching for text. It would be useful to extend this to images also.
  @davidmezzetti on Slack suggested using something like `similar(image:///PATH)`.
  
  
  As a workaround for anyone else wanting to search by images, I did notice you can do it right now, but you can't use the SQL syntax. 
  That is, you can search the whole index for the closest entry, but can't filter entries out.
  This functionality isn't documented on `txtai`, it just works as a side-effect of CLIP.
  You can also search for embeddings directly.
  
  For example:
  ```python
  import requests
  from sentence_transformers import SentenceTransformer
  from PIL import Image
  from txtai.embeddings import Embeddings
  
  texts = ["a picture of a cat", "a painting of a dog"]
  texts_index = [(i, t, None) for i, t in enumerate(texts)]
  
  embeddings = Embeddings({"method": "sentence-transformers", "path": "sentence-transformers/clip-ViT-B-32", "content": True})
  embeddings.index(texts_index)
  
  url = "https://cataas.com/cat"
  r = requests.get(url, stream=True)
  im = Image.open(r.raw).convert("RGB")
  
  # search image directly
  print(embeddings.search(im, 2))
  
  # search embeddings
  model = SentenceTransformer('clip-ViT-B-32')
  im_emb = model.encode(im)
  print(embeddings.search(im_emb, 2))
  ```
  outputs
  ```text
  [{'id': '0', 'text': 'a picture of a cat', 'score': 0.25348278880119324}, {'id': '1', 'text': 'a painting of a dog', 'score': 0.18208511173725128}]
  [{'id': '0', 'text': 'a picture of a cat', 'score': 0.25348278880119324}, {'id': '1', 'text': 'a painting of a dog', 'score': 0.18208511173725128}]
  ```