Start splitting out interfaces with ciphers

The interfaces module is getting unwieldy so starting to split this out.
Beginning by creating a ciphers module.

This starts implementing issue #1495