Add Type Hinting to anything that requires it

Reference http://php.net/manual/en/language.oop5.typehinting.php
Merge pull request #31 from mikealmond/feature/type-hinting

Add Type Hinting to anything that requires it