Hello,
I have installed `localstack` from source and running the following:

```
khinester@MBM-DT111  /c/Users/norman.khine/go/src/github.com/localstack   master   export SERVICES=kinesis,lambda,sqs,dynamodb
```

then, running `docker-compose up`
```
 khinester@MBM-DT111  /c/Users/norman.khine/go/src/github.com/localstack   master  docker-compose up                                                1 ↵  6718  14:00:20
Creating network "localstack_default" with the default driver
Creating localstack_localstack_1 ... done
Attaching to localstack_localstack_1
localstack_1  | 2019-02-11 14:01:51,568 CRIT Supervisor running as root (no user in config file)
localstack_1  | 2019-02-11 14:01:51,572 INFO supervisord started with pid 1
localstack_1  | 2019-02-11 14:01:52,575 INFO spawned: 'dashboard' with pid 8
localstack_1  | 2019-02-11 14:01:52,578 INFO spawned: 'infra' with pid 9
localstack_1  | (. .venv/bin/activate; bin/localstack web)
localstack_1  | (. .venv/bin/activate; exec bin/localstack start)
localstack_1  | Starting local dev environment. CTRL-C to quit.
localstack_1  | 2019-02-11T14:01:53:INFO:werkzeug:  * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
localstack_1  | 2019-02-11T14:01:53:INFO:werkzeug:  * Restarting with stat
localstack_1  | Starting mock API Gateway (http port 4567)...
localstack_1  | Starting mock DynamoDB (http port 4569)...
localstack_1  | Starting mock SES (http port 4579)...
localstack_1  | Starting mock Kinesis (http port 4568)...
localstack_1  | Starting mock Redshift (http port 4577)...
localstack_1  | Starting mock S3 (http port 4572)...
localstack_1  | Starting mock CloudWatch (http port 4582)...
localstack_1  | Starting mock CloudFormation (http port 4581)...
localstack_1  | Starting mock SSM (http port 4583)...
localstack_1  | Starting mock SQS (http port 4576)...
localstack_1  | Starting mock Secrets Manager (http port 4584)...
localstack_1  | Starting local Elasticsearch (http port 4571)...
localstack_1  | 2019-02-11T14:01:54:WARNING:werkzeug:  * Debugger is active!
localstack_1  | 2019-02-11 14:01:54,244 INFO success: dashboard entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
localstack_1  | 2019-02-11 14:01:54,244 INFO success: infra entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
localstack_1  | 2019-02-11T14:01:54:INFO:werkzeug:  * Debugger PIN: 113-346-352
localstack_1  | Starting mock SNS (http port 4575)...
localstack_1  | Starting mock DynamoDB Streams service (http port 4570)...
localstack_1  | Starting mock Firehose service (http port 4573)...
localstack_1  | Starting mock Route53 (http port 4580)...
localstack_1  | Starting mock ES service (http port 4578)...
localstack_1  | Starting mock Lambda service (http port 4574)...
localstack_1  | 2019-02-11T14:02:07:WARNING:infra.pyc: Service "elasticsearch" not yet available, retrying...
localstack_1  | 2019-02-11T14:02:11:WARNING:infra.pyc: Service "elasticsearch" not yet available, retrying...
localstack_1  | Ready.
```

all seems to work, but when i try to access dynamodb shell, i get the following error:

```
localstack_1  | 2019-02-11T12:56:50:ERROR:localstack.services.generic_proxy: Error forwarding request: expected string or buffer Traceback (most recent call last):
localstack_1  |   File "/opt/code/localstack/localstack/services/generic_proxy.py", line 196, in forward
localstack_1  |     path=path, data=data, headers=forward_headers)
localstack_1  |   File "/opt/code/localstack/localstack/services/dynamodb/dynamodb_listener.py", line 35, in forward_request
localstack_1  |     data = json.loads(to_str(data))
localstack_1  |   File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
localstack_1  |     return _default_decoder.decode(s)
localstack_1  |   File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
localstack_1  |     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
localstack_1  | TypeError: expected string or buffer
```

adding data using the CLI works

```
 khinester@MBM-DT111  /c/Users/norman.khine  awslocal dynamodb create-table --table-name MusicCollection --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5
{
    "TableDescription": {
        "TableArn": "arn:aws:dynamodb:us-east-1:000000000000:table/MusicCollection",
        "AttributeDefinitions": [
            {
                "AttributeName": "Artist",
                "AttributeType": "S"
            },
            {
                "AttributeName": "SongTitle",
                "AttributeType": "S"
            }
        ],
        "ProvisionedThroughput": {
            "NumberOfDecreasesToday": 0,
            "WriteCapacityUnits": 5,
            "LastIncreaseDateTime": 0.0,
            "ReadCapacityUnits": 5,
            "LastDecreaseDateTime": 0.0
        },
        "TableSizeBytes": 0,
        "TableName": "MusicCollection",
        "TableStatus": "ACTIVE",
        "KeySchema": [
            {
                "KeyType": "HASH",
                "AttributeName": "Artist"
            },
            {
                "KeyType": "RANGE",
                "AttributeName": "SongTitle"
            }
        ],
        "ItemCount": 0,
        "CreationDateTime": 1549894704.534
    }
}
```

what is the correct way to connect to the dynamodb shell form the browser?

running dynamodb-local in docker i am able to access it

```
 khinester@MBM-DT111  /c/Users/norman.khine  docker ps                                                                                                                                ✔  6744  14:29:31
CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                                      NAMES
ff59bae766ab        localstack/localstack   "/usr/bin/supervisor…"   27 minutes ago      Up 27 minutes       0.0.0.0:4567-4584->4567-4584/tcp, 0.0.0.0:8080->8080/tcp   localstack_localstack_1
ef4b9a0231e6        docker/compose:1.22.0   "docker-compose up"      27 minutes ago      Up 27 minutes                                                                  practical_dirac
2e8ad475a793        amazon/dynamodb-local   "java -jar DynamoDBL…"   2 hours ago         Up 2 hours          0.0.0.0:8000->8000/tcp                                     sleepy_yonath
```

http://172.23.145.113:8000/shell/  connects

is this available?


env_str += '-e DATA_DIR="%s" ' % container_data_dir
    interactive = '' if force_noninteractive or in_ci() else '-it '
    
    user_flags = '%s ' % user_flags if user_flags else user_flags
    entrypoint = '%s ' % entrypoint if entrypoint else entrypoint
    plugin_run_params = '%s ' % plugin_run_params if plugin_run_params else plugin_run_params
    docker_cmd = ('docker run %s%s%s%s%s' +
        '-p 8080:8080 %s %s' +
        '-v "%s:/tmp/localstack" -v "%s:%s" ' +
        '-e DOCKER_HOST="unix://%s" ' +
        '-e HOST_TMP_FOLDER="%s" "%s" %s') % (
            interactive, entrypoint, env_str, user_flags, plugin_run_params, port_mappings, data_dir_mount,
            config.TMP_FOLDER, config.DOCKER_SOCK, config.DOCKER_SOCK, config.DOCKER_SOCK,
            config.HOST_TMP_FOLDER, image_name, cmd
    )
    mkdir(config.TMP_FOLDER)
    run_cmd_safe(cmd='chmod -R 777 "%s"' % config.TMP_FOLDER)
    print(docker_cmd)
    t = ShellCommandThread(docker_cmd, outfile=subprocess.PIPE)
    t.start()
    time.sleep(2)
    t.process.wait()
    sys.exit(t.process.returncode)
def canonicalize_api_names(apis):
    """ Finalize the list of API names by
        (1) resolving and adding dependencies (e.g., "dynamodbstreams" requires "kinesis"),
        (2) resolving and adding composites (e.g., "serverless" describes an ensemble
                including "iam", "lambda", "dynamodb", "apigateway", "s3", "sns", and "logs"), and
        (3) removing duplicates from the list. """
    def contains(apis, api):