Used generics to avoid unchecked warnings
Fixed XML to JSON conversion to prevent data loss

Updated XML to JSON conversion to follow the approach listed at
www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html.

This approach prevents data loss in certain situations.

Conversion has changed in the following ways:

* Attribute names are prefixed with an '@'
* Content is given the key '#text' instead of 'content'

This helps avoid name collisions which would otherwise result in data
loss, as demonstrated in the following example:

```xml
<a tag="text"><tag>different text</tag></a>
```

Using the previous revision, the above XML would result in the following
JSON:

```json
{
  "a": {
    "tag": "different text"
  }
}
```

With the updated code, the JSON would be translated into the following
(with no data loss):

```json
{
  "a": {
    "@tag": "text"
    "tag": "different text"
  }
}
```
Added build.sbt build definition
Added .gitignore