expose random IV generation in the public interface
callers of the encode interface are now required to pass in the correct iv for the ciphertext being encoded
Also add a command-line interface to demonstrate/exercise the intended public encoding interface.