Add Operation class and operation events
Add timeout and retry behavior to operations
Add operation queue, and reorganize src folders
Add test cases for timeouts and retries
Update build to run unit tests
Ignore IntelliJ output folder
Update Gradle to embed ASDoc