introduce class ItemDeclaration

Preparation for fixing QBS-485.

Change-Id: I00598e0cd3b64782107051939f896ac065ac6e57
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
check for allowed child item types

For example, having a Depends item directly under a Project item will
yield an error now.

Task-number: QBS-485

Change-Id: Id4ef28bd243a6614483005b5a212dd2286267202
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>