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
...
```
42 jobs for romanhabibov/gh-3075-add-column-v2 in 51 minutes and 7 seconds (queued for 11 minutes and 3 seconds)
latest
Status Name Job ID Coverage
  Static Analysis
passed luacheck #858065670
deploy_test

00:00:38

 
  Test
passed centos_6 #858065701
deploy

00:04:30

passed centos_7 #858065703
deploy_test

00:05:27

passed centos_8 #858065705
deploy_test

00:04:17

passed debian_10 #858065723
deploy

00:05:22

passed debian_8 #858065719
deploy

00:07:51

passed debian_9 #858065722
deploy

00:04:29

passed debug #858065680
docker_test

00:10:16

passed default_gcc_centos_7 #858065698
deploy_test

00:06:41

passed fedora_28 #858065707
deploy_test

00:04:29

passed fedora_29 #858065709
deploy_test

00:04:35

passed fedora_30 #858065712
deploy_test

00:04:16

passed fedora_31 #858065713
deploy_test

00:06:11

passed freebsd_12_release #858065697
vms_freebsd_12

00:14:40

passed opensuse_15_1 #862456361
deploy_test

00:04:15

passed opensuse_15_2 #862456364
deploy_test

00:05:56

passed osx_13_release #858065689
osx_13

00:07:49

passed osx_14_release #858065691
osx_14

00:07:54

passed osx_15_release #858065694
osx_15

00:05:19

passed osx_15_release_lto #858065695
osx_15

00:06:24

passed out_of_source #858065675
deploy_test

00:11:12

passed release #858065677
docker_test

00:07:02

passed release_asan_clang11 #858065688
docker_test

00:06:37

passed release_clang #858065681
docker_test

00:05:12

passed release_lto #858299980
docker_test

00:06:08

passed release_lto_clang11 #858065686
docker_test

00:04:37

passed sources #858065699
deploy

00:00:22

passed static_build #858065729
docker_test

00:04:01

passed static_build_cmake_linux #858065731
docker_test

00:08:27

passed static_build_cmake_osx_15 #858065733
osx_15

00:06:56

passed ubuntu_14_04 #858065714
deploy

00:04:50

passed ubuntu_16_04 #858065715
deploy

00:05:24

passed ubuntu_18_04 #858065716
deploy

00:06:39

passed ubuntu_19_10 #858065717
deploy

00:06:56

passed ubuntu_20_04 #858065718
deploy

00:06:57

failed opensuse_15_1 #858065725
deploy_test

00:04:15

failed opensuse_15_2 #858065727
deploy_test

00:04:15

failed release_lto #858065684
docker_test

00:05:38

 
  Long Tests
manual jepsen-cluster #858065740
mcs_jepsen_docker allowed to fail manual
manual jepsen-cluster-txm #858065742
mcs_jepsen_docker allowed to fail manual
manual jepsen-single-instance #858065735
mcs_jepsen_docker allowed to fail manual
manual jepsen-single-instance-txm #858065738
mcs_jepsen_docker allowed to fail manual