MV implementation

Support for all commandline options except one, see src/mv/mv.rs
Many tests, included a todo list of more tests too, see tests/mv.rs
This is a complete rewrite compared to the current basic mv.

Any feedback very welcome!


This could be something like:
```rust
verbose_backup = match b.backup {
    NoBackup => None,
    SimpleBackup => simple_backup_path(to, &b.suffix),
    NumberedBackup => numbered_backup_path(to),
    ExistingBackup => existing_backup_path(to, &b.suffix)
};
if let Some(backup_path) = verbose_backup {
    try!(fs::rename(to, &backup_path));
}
```

If you use `if let`, then you need to add `#[feature(if_let)]` near the top of the file.