Add failing test
Don't raise error for legit tmp files

This commit fixes an error when chaining multiple filters. Filters will
correctly put files inside the tmp directory. This commit verifies that
all files are not inside the tmp directory when input_files is
calculated. This will raise an error when you match files inside the
pipeline's tmp dir or specifically add it as an input
Version bump 0.8.0

All the work on pipeline invocation fixes and new filters/matchers
should have it's own release.
No double task lookup
Use quicker fingerprint
Reintroduce last_manifest/manifest

I had previously removed the 2 manifest concept from the code. I thought
this was ok because the tests were passing. There weren't enough tests
to cover all use cases. Two manifests are needed for tracking changes in
dynamic prerequisites between invocations. Here's the use case: you have
a file dynamic file A that imports B. Inovking A will _always_ update
B's mtime in the manifest. This causes dependency modification check
results to be false positives.
Use integer time instead of Time objects

Parsing times is slow. This takes up a lot of time when loading large
manifests. Using integer timestamps should also work better across
multiple platforms. We also completley avoid timezone math.
Completely skip computation if nothing has changed

This commit introduces a global dirty state. This check is used when
invoking a project. It checks to see if any of the known files have
changed, or if any files have been deleted or added. Projects are dirty
if the assetfile has changed. When projects are clean invoking them does
nothing. This check saves costly build time. The build tree is
constructed internally every time. This can be costly. Running those
rake tasks would not change anything anyway so that process can be by
passed.

This commit should make the preview server much faster. Say you have a
set set of assets: images, application.js, application.css, and
index.html. Opening the preview server will send an HTTP request for
index.html. This request will compile the pipeline. Further requests to
application.js, application.css and images should return almost
instantly because pipeline does not have to do any processing.
Middleware should take a project

Refactor the server/middleware to take a project instance. This change
does not instantiate a new project for every HTTP request. This prevents
needless resetting and rebuilding between requests. Mainly this ensures
that manifest objects maintain state between HTTP requests.
Merge pull request #117 from twinturbo/performance

Performance Fixes: from the very small to very large
Merge pull request #109 from twinturbo/tmp-error-fix

Tmp error fix
Merge pull request #116 from twinturbo/patch-2

Version bump 0.8.0
Test for handling deleted files
Move YARD gems into docs group
Fix test failure caused by JRuby's different handling of sort
Fix Rubinius test failures
Merge pull request #119 from twinturbo/deleted-files-fix

Test for handling deleted files
Only support JRuby 1.7+ and remove Rubinius for now
Merge pull request #107 from wagenet/test-fixes

This fixes failing tests for Rubinius and JRuby.
Pipeline, not Pipline