Further improvement on implementation.

* Use default fragmenter instructions if null instructions provided.
* Verify in tests that getFragmenterInstructions() is only called once
per operation.
* Add verification of fragmenter instructions before using them.
* Added tests for invalid fragmenter instructions.