don't allow array columns as primary key
implement "alter table add column"
refactor create table statement analyzer

in order to

 * share code between create table and alter table add column
 * avoid empty lists in the mapping which break merging of the mappings
add column: validate nested columns and only allow add columns on non-system tables
alter table add column fixes:

- prohibit adding a new index
- correct the synopsis
- handle adding primary key columns correctly
use TransportExecutor to execute the count request
support adding nested columns to a table
enable IsNullPredicate on all data types
added parser support for insert from subquery
implemented insert by query analysis
implemented internal-only ``cast`` function
added implicit type casting on insert with subselect
added parser support for insert from subquery
implemented insert by query analysis
insert by query plan WIP
fix clusteredByColumn serialization in AbstractIndexWriterProjection
issue inserts on shard for insert-by-query without limit

- forbid insert by query with limit/offset or order by
Merge pull request #893 from crate/m/insert-by-query-plan

implemented insert-by-query plan
added docu for insert by query