Added class to check plugin requirements
Improved error messages for missing requirements
Improved requirements checking
Restructured plugin

- Moved requirement checks to an independent class.
- Cleaned up code.