Initial install commit.

What works:
-simple file to file destination install
-multiple files to folder destination install
- -t flag
- partially -m flag, right now accepts mode only on form [ugoa]+[+-=][rwx]+, but in current state should be relatively easy to expand

Any feedback is welcome, some parts of the code are ugly even for me.
I believe the two `Path::new()` statements can be turned into one by doing:
```rust
let dest = Path::new(match matches.opt_str("target-directory") {
    // stuff goes here.
});