Add ESLint configuration
This commit introduces an ESLint configuration file to the project. It
includes recommended rules and best practices for TypeScript projects.
The configuration also sets up various plugins and specifies ignores to
prevent linting of certain files.