Added Parsing Capabilities to Input class for nested array keys

```
array(
			'dim1' => array(
				'k1' => 'key 1',
				'k2' => 'key 2',
				'k3' => 'key 3'
			),
			'dim2' => array(
				'm1' => array(
					'k1' => 'key 1',
					'k2' => 'key 2',
					'k3' => 'key 3'
				)
			),
			'dim3' => 5
		);
```
``set_value('dim2[m1][k1]', 'none')`` will now recurse into ``$_POST`` array to fetch the value of ``array['dim1']['m1']['k1']`` as ``key``

``set_value('dim2[m1][]', 'none')`` will fetch the contents of ``array['dim1']['m1']`` as:
```
array(3) {
  ["k1"]=>
  string(5) "key 1"
  ["k2"]=>
  string(5) "key 2"
  ["k3"]=>
  string(5) "key 3"
}
```


Changes made to ``CI_Input :: _fetch_from_array()`` method, by appending another argument to ``recurse``. Respective changes made to ``post()``, ``get()``, ``get_post()``, ``cookie()`` but **NOT** to  ``server()``

Fixes #2236
Follow up to PR #2270