Optional method parameters for services.

It is possible now to wrap method parameter tuple elements in
optional<T> or optional_with_default<T, T t> modifiers. In this case,
the length check on the received argument tuple will be relaxed and all
the missing arguments will be either default constructed or copied from
the default value.
Minor cleanup and macro pseudo-namespacing.

Some logical include reordering. Also, wrap COCAINE_DECLARE_NONCOPYABLE
macro parameter in underscores to avoid conflicts.