Add support for Postgresql JSONB

This is the updated version of #15195 and #15950 by @pcreux and @chris-teague.

It is tested against postgresql-9.4beta.

Test cases shared between json and jsonb are extracted to a module called `PostgresqlJSONSharedTestCases`. I made my best to minimise the amount of lines impacted by this extraction.
@senny I find prefere defining the method `column_type` over this:

```
def setup
  @column_type = :json
  super
end
```

I'm happy to use an instance variable instead if you prefer.