Refactored Deck constructor to accept either a JSON string or file path, rather than only file paths
Refactored Deck constructor to throw an Exception (though should probably revise to a more specific Exception type) if json_decode() logs any errors