Use stack based approach for JSONDecoder to increase decoder reusability
Rename FromJson to JSONDecodable, use new stack approach
Implement complex object decoding with stack based approach
Implement printable protocol for JSON enum
Add test for decoding of nested json