Refactor - separate file mode stuff out to core.go.

Minor bugfix in Cp implementation encountered during aforementioned
refactoring
Separate Prompt functions from commands to core.go

This makes a lot more sense in the context of the next commit
Move recursing over directories into core.go

Also, moves the Stat function in Cp into core.go.
Previous changes also make more sense in the context of this commit
No reason not to import goopt normally. How silly.
Add Chmod implementation. Fixes to bit flip bugs.
Remove the umask clear in Cp and Mkdir.

Holy fuck I fucking hate bit flipping bugs. I hope it is just my OS
that is fucking with me but holy fuck this shit is annoying.