Converting job arguments using Json.NET instead of `TypeConverter`

Job argument serialization/deserialization process now uses Json.NET library instead of the `TypeConverter` class - sometimes it is better to use arrays that create a new object in a database and pass its identifier. Moreover, you can now use custom DTO's as job arguments.

All changes are backward-compatible. Old arguments will be deserialized with `TypeConverter`.

| Argument type | TypeConverter | Json.NET
| --- | --- | ---
| Boolean | :white_check_mark:  | :white_check_mark:
| Byte, SByte | :white_check_mark: | :white_check_mark:
| Char | :white_check_mark: | :white_check_mark:
| Decimal | :white_check_mark: | :white_check_mark:
| Single, Double | :white_check_mark: | :white_check_mark:
| Int16-64, UInt16-64 | :white_check_mark: | :white_check_mark:
| String | :white_check_mark: | :white_check_mark:
| TimeSpan | :white_check_mark: | :white_check_mark:
| DateTime | :white_check_mark: | :white_check_mark:
| DateTimeOffset | :white_check_mark: | :white_check_mark:
| CultureInfo | :white_check_mark: | :white_check_mark:
| Enum | :white_check_mark: | :white_check_mark:
| Guid | :white_check_mark: | :white_check_mark:
| Uri | :white_check_mark: | :white_check_mark:
| Arrays | :x: | :white_check_mark:
| Collections | :x: | :white_check_mark:
| Dictionaries | :x: | :white_check_mark:
| Custom structs | :x: | :white_check_mark:
| Custom classes | :x: | :white_check_mark:
| All other types supported by [Json.NET](http://james.newtonking.com/json) | :x: | :white_check_mark: