feat(api): Products endpoint
This MR implements a product endpoint. It has the ability to get products by internal id or barcode number.
It furthermore outsources the authentication to separate dependency classes. The token now has the user id instead of the username and checks if the token is expired.