sql: support column addition

Enable to add column to existing space with
<ALTER TABLE ADD [COLUMN]> statement. Column definition can be
supplemented with the four types of constraints, <DEFAULT>,
<COLLATE> clauses and <[NOT] NULL>, AUTOINCREMENT.

Closes #2349, #3075

@TarantoolBot document
Title: Add columns to existing tables in SQL
Now, it is possible to add columns to existing empty spaces using
<ALTER TABLE table_name ADD [COLUMN] column_name column_type ...>
statement. The column definition is the same as in <CREATE TABLE>
statement.

* Space emptiness is Tarantool's restriction. Possibilty to add
column to non empty space will be implemented later.

For example:

```
tarantool> box.execute("CREATE TABLE test (a INTEGER PRIMARY KEY)")
---
- row_count: 1
...

tarantool> box.execute([[ALTER TABLE test ADD COLUMN b TEXT
         >                                           CHECK (LENGTH(b) > 1)
         >                                           NOT NULL
         >                                           DEFAULT ('aa')
         >                                           COLLATE "unicode_ci"
         >             ]])
---
- row_count: 1
...
```
43 jobs for romanhabibov/gh-3075-add-column-v2 in 56 minutes and 7 seconds (queued for 27 minutes and 5 seconds)
Status Name Job ID Coverage
  Static Analysis
passed luacheck #857466059
deploy_test

00:00:47

 
  Test
passed centos_6 #857466080
deploy

00:04:16

passed centos_7 #857466081
deploy_test

00:07:23

passed centos_8 #857466082
deploy_test

00:04:10

passed debian_10 #857466100
deploy

00:05:34

passed debian_8 #857466097
deploy

00:07:32

passed debian_9 #857466098
deploy

00:05:07

failed debug #858061053
docker_test

00:10:24

passed default_gcc_centos_7 #858061067
deploy_test

00:05:25

passed fedora_28 #857466083
deploy_test

00:09:54

passed fedora_29 #857466084
deploy_test

00:04:30

passed fedora_30 #857466085
deploy_test

00:08:46

passed fedora_31 #857466086
deploy_test

00:04:39

passed freebsd_12_release #857466077
vms_freebsd_12

00:16:00

passed opensuse_15_1 #857466103
deploy_test

00:06:17

passed opensuse_15_2 #857466104
deploy_test

00:04:10

passed osx_13_release #857466073
osx_13

00:08:16

passed osx_14_release #858061058
osx_14

00:08:27

passed osx_15_release #857466075
osx_15

00:05:48

passed osx_15_release_lto #857466076
osx_15

00:06:59

failed out_of_source #858061046
deploy_test

00:13:29

passed release #857466063
docker_test

00:09:07

passed release_asan_clang11 #857466072
docker_test

00:09:35

passed release_clang #857466067
docker_test

00:05:52

passed release_lto #857466068
docker_test

00:13:58

passed release_lto_clang11 #857466070
docker_test

00:05:07

passed sources #857466079
deploy

00:00:23

passed static_build #857466105
docker_test

00:04:32

passed static_build_cmake_linux #857466107
docker_test

00:08:35

passed static_build_cmake_osx_15 #857466109
osx_15

00:07:19

passed ubuntu_14_04 #857466088
deploy

00:05:25

passed ubuntu_16_04 #857466089
deploy

00:05:13

passed ubuntu_18_04 #857466091
deploy

00:07:47

passed ubuntu_19_10 #857466093
deploy

00:07:54

passed ubuntu_20_04 #857466095
deploy

00:08:15

failed debug #857466065
docker_test

00:11:17

failed default_gcc_centos_7 #857466078
deploy_test

00:06:18

failed osx_14_release #857466074
osx_14

00:08:12

failed out_of_source #857466060
deploy_test

00:13:20

 
  Long Tests
skipped jepsen-cluster #857466113
mcs_jepsen_docker allowed to fail manual
skipped jepsen-cluster-txm #857466114
mcs_jepsen_docker allowed to fail manual
skipped jepsen-single-instance #857466110
mcs_jepsen_docker allowed to fail manual
skipped jepsen-single-instance-txm #857466111
mcs_jepsen_docker allowed to fail manual
 
Name Stage Failure
failed
out_of_source Test
- [engine/errinj.test.lua, vinyl]
- [engine/tuple.test.lua, vinyl]
...
.travis.mk:221: recipe for target 'test_oos_no_deps' failed
make: *** [test_oos_no_deps] Error 3
make[1]: *** [test_oos_build] Error 2
make[1]: Leaving directory `/home/gitlab-runner/builds/hBm_yoRc/0/tarantool/tarantool'
make: *** [test_oos_build] Error 2
ERROR: Job failed: exit status 1
failed
debug Test
.gitlab.mk:6: recipe for target 'test_coverage_debian_no_deps' failed
make: *** [test_coverage_debian_no_deps] Error 2
Running after script...
$ cp -r test/var/artifacts .
cp: cannot stat 'test/var/artifacts': No such file or directory
Uploading artifacts...
WARNING: artifacts: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1