Refactor into classes

- Move logic for parsing and linting into new LessFile class
- Extend LessFile as LessCachedFile with caching specific implementation
- Move non grunt task files to tasks/lib to prevent being read by grunt
- Add extra tests for imports invalidation in less-file-spec.coffee
Add caching to import file lookups

- Create new LessImportFile class
  - Overrides getContents and getDigest to look in a shared contents
  lookup for contents and digests done in previous runs
Merge pull request #22 from jgable/importCaching

Refactor into classes and add faster caching with options.import