Introudce benchmark.context() decorator

Before this patch we have to specify:

__ctx_name__, __ctx_order__ and __ctx_hidden__ by hands as attributes
of context class.

This thing produced few issues:

1) It looks ugly
2) It is absolutelly unclear. So you don't know what they mean, and
   there is no easy way to find information about it. So now it's
   much simpler e.g. you should just take a look at decorator
   implementation
3) This was source of bugs, cause it was not tested by syntax
   of language => so we have to have mad tests to check that
   all __ctx_name__, __ctx_order__ were specified

* Use decorator instead of direct setting attributes

* Rename attributes:
  __ctx_name__ -> _ctx_name
  __ctx_order__ -> _ctx_order
  __ctx_hidden__ -> _ctx_hidden

  This was done cause of unification with other parts of code

* Improve a bit "servers" get uuid of image and flavor only once

* Impove order of context

* Make secgroup and allow_ssh not hidden context. There is no
  need to hide them, and probably somebody would like to use
  them.

* Docs are updated

Change-Id: Ib089b398ba0c7f54d5246eb6ba29f5bbcfd2deee
Merge "Introudce benchmark.context() decorator"