Makefile: remove pointless compiler flags, try dragonegg

`CC = gcc-4.7 -fplugin=dragonegg` uses an LLVM backend and GCC frontend.

Some test_backprop times for comparison:


clang         0m46.533s
dragonegg     0m46.474s
gcc-4.7       0m44.005s
gcc-4.8       0m44.560s
gcc-4.9       0m44.040s

In other words, there is not much in it. Clang and dragonegg give
nicer warnings in some cases. Based on:

    for x in ./test_backprop-*; do
      for i in 1 2; do
        echo $x;
        time $x  --momentum-soft-start 5000 -s 200k \
           --no-save-net -q -t test-images/dickens-shuffled.txt \
           2>/dev/null;
      done;
    done
classify: default classes can be "0" and "1"

"t" and "f" were back to front and never appropriate.
charmodel: ensure counts are initialised in find_alphabet

They were uninitialised in the case of an early error, in a debug
line.
text-classify: use the correct net in training, with debugging

The key change is this:

-      float *answer = one_hot_opinion(net, t.symbol, net->presynaptic_noise);
+      float *answer = one_hot_opinion(n, t.symbol, net->presynaptic_noise);
text-classify: more command line options
net, classify: avoid logging momentum more times than necessary

The text predictors and classifiers log momentum already.
scripts/rnn_describe: add presynaptic_noise awareness
test_backprop: always use alphabet if given
recur-nn: add ADAGRAD option to rnn_apply_learning

When you use RNN_ADAGRAD as the learning method, the momentum argument
is ignored. bptt->learn_rate is used as the ADAGRAD eta parameter, and
should be quite high (~0.5 is common).
test_backprop: add ADAGRAD options

The momentum arrays is used to accumulate the gradient squared magnitude,
and as this is used in division it has to start at a non-zero value. A
low initial value causes the effective learning rate to initially drop
quickly and possibly wildly, while a higher one keeps it steady but less
responsive.  A similar parameter might be used in other adaptive learning
mechanisms. Hence --ada-ballast, describing the inertia effect while not
tying it to adagrad specifically.
gstclassify: internal switch to learning_style terminology

the property is still "momentum-style".
find-best-nets: print trailing zeros in scores

This keeps the columns aligned.
Some form of ADADELTA optimisation

This is not quite exactly right. I need to read the literature.
test_backprop: restore periodic saving
test_backprop: allow learning rate > 1 (for ada-grad/delta)
rnn: ADADELTA by the book

The learning-rate is used as the epsilon, and momentum is used as mix
ratio.
rnn adadelta: shift rate into exponentially decaying terms

This makes it run 10 times faster. It doesn't perfomr any worse, which is
not to say it does well.
test_backprop: more sensible defaults for some combinations

There are too many combinations to know what anything will do.
rnn adadelta: try L1 accumulation, rather than Euclidean

This actually seems to work a bit better, though not as well as adagrad
or the momentums.
classify: add support for adagrad and adadelta