Encodes maps into object

as in master branch, added an implementation to encode maps

```elixir
> {:ok, "{\"a\":1,\"b\":2}"} = JSON.encode(%{a: 1, b: 2})
```