fix 2 bugs of batch (#284)
1. `_create_value(Batch(a={}, b=[1, 2, 3]), 10, False)`
before:
```python
TypeError: cannot concatenate with Batch() which is scalar
```
after:
```python
Batch(
a: Batch(),
b: array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]),
)
```
2. creating keys in a batch's subkey, e.g.
```python
a = Batch(info={"key1": [0, 1], "key2": [2, 3]})
a[0] = Batch(info={"key1": 2, "key3": 4})
print(a)
```
before:
```python
Batch(
info: Batch(
key1: array([0, 1]),
key2: array([0, 3]),
),
)
```
after:
```python
ValueError: Creating keys is not supported by item assignment.
```
3. small optimization for `Batch.stack_` and `Batch.cat_`, raise ValueError when receiving invalid data format.