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 think this would be better as something like:
```rust
for pathstr in free.into_iter() {
    let path = Path::new(pathstr);
    if let Err(err) = fs::stat(&path) {
        show_error!("cannot stat '{}': {}", path.display());
        return 1;
    }
    tmp.push(path);
}
```