* Add `sortCriteria` parameter to `search` function in `IMAPServer.swift`
* Create `SortCriteria` enum with options for `DATE`, `ARRIVAL`, `FROM`, `TO`, `SUBJECT`, `SIZE`, and `REVERSE`
* Implement method to convert `SortCriteria` to NIO IMAP types
Related to #9
Implement basic IMAP search functionality.
* Add `SearchCommand` struct in `Sources/SwiftIMAP/IMAP/Commands/SearchCommand.swift` conforming to `IMAPCommand` protocol.
* Add properties `identifierSet` and `criteria`.
* Implement `toTaggedCommand` method to convert to IMAP tagged command.
* Add initializer to accept `identifierSet` and `criteria` parameters.
* Add `SearchHandler` class in `Sources/SwiftIMAP/IMAP/Handler/SearchHandler.swift` conforming to `IMAPCommandHandler` protocol.
* Add properties to store search results.
* Implement `processResponse` method to handle tagged and untagged responses.
* Implement `handleTaggedOKResponse` and `handleTaggedErrorResponse` methods.
* Add `SearchCriteria` enum in `Sources/SwiftIMAP/Models/SearchCriteria.swift` to model Swift NIO IMAP criteria.
* Include cases like `.uid(number)`, `.unseen`, `.smaller(number)`, etc.
* Modify `Sources/SwiftIMAP/IMAPServer.swift` to implement `search` function with a generic type `<T: MessageIdentifier>`.
* Accept parameters: `identifierSet` (optional) and `criteria` (array of enums).
* Return a collection of message identifiers `[T]`.
* Switch between `.search` and `.uidSearch` based on the type of `T`.
---
For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/Cocoanetics/SwiftMail/issues/9?shareId=XXXX-XXXX-XXXX-XXXX).