Add options support

Just rebased Jan's commits, added tests for his changed and support for options to the fake FileUtils#cp.