Re-arrange source files

Give the codebase a more conventional gem structure.