Simplify Sequence API, removing a bunch of wrapper methods

This commit drops all the convenience wrappers for __getitem__, __len__,
and so on.  They were simply calling get() and the variable, and then
calling the underlying method.

Let's not waste time adding and maintaining all this.

Also, the API is a bit clearer when you can see that you are actually
calling get(), instead of having it done implicitly.  Especially since we
cannot wrap the most important access method, namely the get().

And for recipe/eval context, it is all wrapped nicely by the EvalWrapper
class.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Cleanup Variable code

Put common code into methods, making it easier to add more variable types.

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
Redefine Variable __str__ API

Instead of giving a human readable representation of the get() value, just
return a representation of the class name and variable name (if set).

Using str() on Variable instances will yield values like:
    String(FOO)
    String()
    Int(I)

Signed-off-by: Esben Haabendal <esben@haabendal.dk>
A few extra unittests

Signed-off-by: Esben Haabendal <esben@haabendal.dk>