Optimize configuration parser and shell oracle

The patch optimizes the representation of property annotations
by avoiding to parse the annotation several times. Instead the
AnnotatedKey instance is stored.

A further optimization is to store annotated keys in a
separate map, thus reducing the size of the hash table containing
the properties themselves, and also avoiding the need to filter
property keys. It also avoid the additional string concatenation
and hash computation to produce a special key for annotated keys.

Yet another optimization is to let getAnnotatedKey return null if
no annotation is found. The creation of an "empty" AnnotatedKey
is expensive as the regular expressions are still applied in the
constructor.

Finally, the shell oracle printer is updated to no longer output
deprecated properties. Such properties should not be reference
by any of our shell scripts. Not output deprecated properties both
speed up the printer itself, but more importantly it speeds up
calls to the getProperty shell function (because it is smaller).

Target: trunk
Require-notes: no
Require-book: no
Acked-by: Paul Millar <paul.millar@desy.de>
Patch: http://rb.dcache.org/r/5829/