Simplify `asset_path` method

There's nothing wrong with using forward slashes, there's no reason to
avoid using them.

Now you call `asset_path("javascripts/application.js")` instead of
`asset_path("javascripts", "application.js")`.
Improve `file_path` tests

Some somewhat duplicate tests were tweaked to test some edge cases that
weren't being tested before.
Move default values responsibility to AnalysedFile
Stop sorting paths
Follow the convention of using `::` for describing class methods
Simplify file sample used for some tests
Turn SourceLocator into a module
Use RubyCritic's version as a cache key in the name of the revision file

Basically without this change, updating to a new version of the gem
would sometimes cause things to blow up since in the Serializer we're
loading old code with `Marshal.load`. This a terrible way to keep
snapshots, we should probably use a DB like SQLite3.