Several changes

Several changes:

- Added getProtocols function for GameQ. This will be handy for me to use in the future, and others may find it useful as well. If there is a better way of doing it let me know. This seems sufficient for now.
- Throw an exception if protocol isn't found instead of doing a fatal error.
- Fixed several phpdoc comments that needed to be updated.
- Added .idea to the .gitignore. These files are generated by phpstorm.
- Removed deprecated function key_exists with array_key_exists. 

If there is anything you need me to do, just let me know.