Fix source mapping

**Update**: This initial post describes an earlier commit. More features have been added since, outlined in [this response](https://github.com/gruntjs/grunt-contrib-uglify/pull/122#issuecomment-30844811).

The source map feature of `uglify` has been known to be in need of work for quite some time. For even the most basic project structure, a [hacky fix](https://github.com/gruntjs/grunt-contrib-uglify/issues/39#issuecomment-14856100) is needed to get the source map functioning properly.

This solution tries to be as simple as it gets, mimicking `grunt-contrib-sass`'s implementation of source maps by using a single value, a Boolean, to determine whether to generate a map or not.

Solutions like #116 retain backwards compatibility, but don't resolve the issue of the complexity in generating a working source map with the convoluted set of options currently available. The solution proposed here does the most it can do for the user by figuring out all of the directories and relationships for her – she just worries about the properties of the map itself, like whether to include a source map from a previous build.

`grunt-contrib-less` has an even more customizable source map implementation, but there are a number of open issues about source maps in that repository right now, leading me to go for this simpler system to start. With that said, this implementation is easily extendable if there was a desire to make it more complex. For instance, adding a custom source map name and location would be pretty simple from this point. If this is merged I can work on adding that added complexity.

There are new tests and an updated `Readme`, but the `docs` section wasn't modified. I also did my best to follow the same writing style present in the rest of the plugin.

This should solve #39, #71, and #116