Simplest inference of `@Contract(pure=true)`

This simple analysis infers `@Contract(pure=true)` only if the method doesn't have following instructions:

* `PUTFIELD`
* `PUTSTATIC` 
* `IASTORE`
* `LASTORE` 
* `FASTORE` 
* `DASTORE` 
* `AASTORE`
* `BASTORE`
* `CASTORE`
* `SASTORE`
* `INVOKEDYNAMIC`
* `INVOKEINTERFACE`

Instructions `INVOKESPECIAL`, `INVOKESTATIC`, `INVOKEVIRTUAL` are processed by transitivity.