Support for dynamic file objects

I believe that the format this plugin uses for deciding files source/destination is incorrect (maybe it is based on 0.3.x?).

Either way I cannot make a config like this return what is expected with Grunt 0.4.x:

```javascript
expandFiles: {
  files: [
    {
      expand: true,
      cwd: 'test/fixtures/expand/',
      src: [
        '*.js'
      ],
      dest: 'test/fixtures/output/expand/js/'
    },
    {
      expand: true,
      cwd: 'test/fixtures/expand/',
      src: [
        '*.css'
      ],
      dest: 'test/fixtures/output/expand/css/'
    }
  ]
}
```

I had a look at how [grunt-contrib-copy](https://github.com/gruntjs/grunt-contrib-copy) handles things and this PR implements their solution. I could not make the above scenario work with the current grunt-md5. Do you have any suggestions?

**Note!** This PR changes how the "dest" is currently interpreted. If the "dest" does not have a trailing slash it *will* be interpreted as a file. Currently "dest" is *always* interpreted as a directory, therefore my config object above cannot work with the plugin right now. I get an intermediate directory named like the source file. 

I do not have a Windows computer available for testing, but this should be tested on that platform specifically because of the code from grunt-contrib-copy.