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.
If you do the `IoResult` thing, this should be:
```rust
let result =
    if matches.opt_present("target-directory") || sources.len() > 1 || is_dest_dir {
        files_to_directory(sources, dest, mode)
    } else {
        file_to_file(sources[0].clone(), dest, mode)
    };
match result {
    Ok(_) => 0,
    Err(e) => {
        show_error!("{}", e);
        1
    }
}
```