BytecodeCompleter: yak shaving - follow principles of design by contract

* Add preconditions.
* Fix Javadocs.
* Add comments.
* Declare non-modifiable fields as final.