stub paperclip in encoded file state machine spec
Stricter config access during configure

* Only allow accessing config after configure is done
* Use passed config in after_configure blocks

This ensures files using the config are not auto loaded prematurely
causing usage of unfinished config i.e. in paperclip attachment
options.
Ensure correct Teaspoon::Engine Constant is used.

Teaspoon Spring Command also defines a Teaspoon::Engine.
Add files method to revision and draft entry

Acts as "has_many through" association with variable
source_type. Return files used by revision filtered by given type.
Introduce FileType concept

PageTypes can provide an array of FileTypes which shall be enabled in
the editor when the PageType is registered. FileTypes provide an
abstraction to describe an ActiveRecord model, a json partial and
names for file models like ImageFile, VideoFile, AudioFile.
Turn FilesController from abstract into generic controller.

* Replace concreate image_files/video_files/audio_files routes with
  generic files/:collection_name route to FilesController
* Make FilesController determine FileType by collection name
Use file types in editor seed instead of concreate file classes
Use file types in json template for entries#show
Editor FileTypes API

For each file type configuration provided from the server side look for
client side file type configuration and fail if missing.

This allows to add client side specific objects (like Backbone models)
to the file type configuration.
Generic Backbone FilesCollection

Replace concrete Image/Video/AudioFilesCollections.
Find FileTypes by File Upload

Either match file upload object or content type.
Rewrite File Handling in Entry Backbone Models

* Use generic FilesCollection
* Add files uploads by matching file types
* Reuse files of multiple types
* Parse files of all file types
* watch counts of all file types
Rewrite FilesView to use FileTypes

* One tab per FileType
* Use generic FileItemView with meta data from FileType
Rewrite FilesExplorerView to use FileTypes

* One tab per FileType
* Add selectionAttribute option for selectableFile to use FileType
  independent attribute in selection model
Require matchUpload option for file type
File type agnostic editor routing
Let inputs specify file type by collection name.
Make ability file type agnostic
Improve file stage definition in stageProviders.

* Turn `stageMapping` hash into `stages` array
* Calculate list of `finishedStates` automatically
Make FileStage progress update generic.

No longer list concrete progress attributes. Construct from stage name
instead.