Fix passing array to 'methods' are in register_json_route()

Currently it will transform a string to `array( 'GET' => true )` but passing an array is not transformed, so passing `array( 'GET' ) != array('GET' => true )`

Also, some nice unit tests