Scriptzeug: Duktape as Javascript scripting backend

This adds [Duktape](http://duktape.org/index.html) as Javascript scripting backend to Scriptzeug.
Duktape is a more compact/lightweight alternative to V8. The two source files duktape.c and duktape.h are already included in the build, which removes the dependency of a big library like V8. ref #79 
(Only tested on Ubuntu 14.04 x64 so far.)
I think the main problem is that the Variant class is designed for value types. In my opinion there two solutions: Either we wrap the AbstractFunction pointer in a shared_ptr or we adapt the AbstractFunction so that we can use it as a value type. This could be done like this:
```cpp
class AbstractFunction
{
public:
    template <typename RET, typename... Arguments>
    AbstractFunction(const std::string & name, RET (*funcPtr) (Arguments...)) :
    m_name(name)
    {
        m_functor = [funcPtr] (const std::vector<Variant> & args)
        {
            return CallFunction<RET, Arguments...>::call(m_func, ArgValueGen<sizeof...(Arguments), Arguments...>::Type::get(args)...);
        };
    }

    ...

    virtual ~AbstractFunction()
    {
    }

    std::string name() const
    {
        return m_name;
    }

    virtual Variant call(const std::vector<Variant> & args)
    {
        return m_functor(args);
    }

protected:
    std::string m_name;
    std::function<Variant (const std::vector<Variant> &)> m_functor;
};
```

I don't get the point with the C functions. Wouldn't they be wrapped in the AbstractFunction class as well?