Move all dimensions operations to Picture::Transformations

All point and string arguments can tage the "x20" or "20x" arguments.
Points get 0 interpolated, height or width get the width or height of
the crop_size or of the original image.

Upscaling is not allowed unless upscale is set to true at the end of method
calls.
Fix bugs on Image::Transformations

This commit tries to fix the issues raised by Thomas. One by one:

1. Refactoring app/views/alchemy/admin/essence_pictures/crop.html.erb
- I didn't really put everything into a method, but rather used Ruby's to_json method.
- @size_x and @size_y get merged into a @min_size parameter, because that's what it really is.

2. Added lots of comments

3. Moved all methods that aren't directly accessed from outside to private methods

4. Added some tests for complex cropping behaviour

5. Changed behaviour for the fixed_ratio option when cropping.
Before, fixed_ratio would be "true" and then set the ratio to 1. Now, one fixed_ratio
takes a number (width/height) and can be arbitrarily set. This makes sense when used in
conjunction with the "x20"/"20x" syntax for image size.
It only affects the image cropper. There is no support for ratio when rendering directly.

6. Thumbnails of cropped images without mask now show the correct part of the image.

7. Instead of raising an error when generating the default mask, the crop button is
disabled when trying to crop an image that cannot be cropped.

8. Changed "-resize" to Imagemagick option -thumbnail because it's
[faster than -resize](http://www.imagemagick.org/script/command-line-options.php#thumbnail)

9. Added upscale parameter to xy_crop_resize

10. Use @image instead of @picture.image_file in the picture_controller.rb
Replace imagemagick -thumbnail action with -resize

Imagemagick's -thumbnail operation is faster than -resize, but this comes
at a price. A lot of metadata is thrown away when using -thumbnail, such as
Copyright and Orientation data. It's better to just keep -resize.
Add upsample param to safe attributes, revert thumbnail algorithm

The upsample param could - in real life situations - never be
passed to the ```PicturesController```; it would always be filtered
out in the clean_picture_params method. Fixed by including it in
the list of safe params.

The cropped_thumbnail algorithm did not work as expected; it's now
reverted to the original algorithm (with a slight modification
allowing for one dimension to be set to zero).
fix thumbnail generation. finally, i think