Added default ordering using OrderedDicts

By convention, JSON objects are often ordered.  This PR enables this convention in Julia with a keyword argument to the parser and using `OrderedDicts`.

```julia
julia> import JSON

julia> require("JSON/test/json_samples")

julia> println(a)
{"menu": {
         "id": "file",
         "value": "File",
         "popup": {
           "menuitem": [
             {"value": "New", "onclick": "CreateNewDoc()"},
             {"value": "Open", "onclick": "OpenDoc()"},
             {"value": "Close", "onclick": "CloseDoc()"}
           ]
         }
       }}
       
julia> p = JSON.parse(a)
["menu"=>["value"=>"File","popup"=>["menuitem"=>{["value"=>"New","onclick"=>"CreateNewDoc()"],["value"=>"Open","onclick"=>"OpenDoc()"],["value"=>"Close","onclick"=>"CloseDoc()"]}],"id"=>"file"]]

julia> p = JSON.parse(a, ordered=true)
["menu"=>["id"=>"file","value"=>"File","popup"=>["menuitem"=>{["value"=>"New","onclick"=>"CreateNewDoc()"],["value"=>"Open","onclick"=>"OpenDoc()"],["value"=>"Close","onclick"=>"CloseDoc()"]}]]]

julia> replace(a, r"[\n ]", "") == replace(JSON.json(p), r"[\n ]", "")
true
```

To avoid a dependency on `DataStructures.jl`, ordered JSON object parsing is only enabled if `DataStructures.jl` is present, and falls back to unordered parsing with a warning otherwise (only printed once):

```julia
julia> p = JSON.parse(a, ordered=true)
WARNING: Ordered JSON object parsing is not available.
Run `Pkg.add("DataStructures.jl")` to enable.
["menu"=>["value"=>"File","popup"=>["menuitem"=>{["value"=>"New","onclick"=>"CreateNewDoc()"],["value"=>"Open","onclick"=>"OpenDoc()"],["value"=>"Close","onclick"=>"CloseDoc()"]}],"id"=>"file"]]

julia> p = JSON.parse(a, ordered=true)
["menu"=>["value"=>"File","popup"=>["menuitem"=>{["value"=>"New","onclick"=>"CreateNewDoc()"],["value"=>"Open","onclick"=>"OpenDoc()"],["value"=>"Close","onclick"=>"CloseDoc()"]}],"id"=>"file"]]

```