-`new_worker`, that returns a tuple with the `pid` and a new `Thread`,
this function must receive a `String` being the `cmd`
-`is_dropped`, that receives a `pid` and returns a `bool` that indicates the state of the thread by using the `pid`
-`track_worker`, it should return a `usize`, that will be the last available index of the `states` vector, being the new next thread
-`add_drop`, this function must be **called by the `Drop` trait**. It will receive a `pid` that will be used to change the
state of the thread. If the state of that thread is `true` then it will panic with the message ("Cannot drop {}, because its already dropped", pid).
Otherwise it should change the state to true and increment the `drops` field by one.
-`Thread`:
-`new_thread`, that initializes a new thread
-`skill`, that drops the thread
- You must implement for the structure `Thread` the `Drop` trait. In this trait you must call the function `add_drop` so that the state of the thread changes