Allow picture render size to be flexible in width or height

Before, you had to state render sizes in the format '300x200'.

Now, you can use e.g. '300' for inferring the height from the image file preserving the aspect ratio (or 'x200' for inferring the width).

These two additional ways of specifying the image geometry are provided by the used image processing library Image Magick (and its wrapper dragonfly), see http://www.imagemagick.org/script/command-line-processing.php#geometry.
Allow "20x" and "x20" syntax for resize, refactor PicturesController

1. The original PR proposed to make size: '300' indicate "infer height". in this PR,
'x300' maps to "infer width" and "300x" maps to "infer height". I find this slightly
more understandable (as the "x" indicates that something's missing, and which one).

The original tests had two conflicting test cases, one where size: '10' was to be
invalid, and one where size '40' was to mean 'infer height'. This is the point where
I had to change the API for this feature.

The other thing was that in the pictures controller, there was a ```#``` missing in a function
that is really just used for cropping with no crop_from data.

Refactoring:

* simplify and rename geometry_string functions
* there was some impossible to execute code (function takes mandatory args and then tests
  for their presence)