Support arrays in the object tree

works for things like:

```javascript
// I want to get a very specific value, but not cause javascript to totally crash
// if any property is undefined
_.deepGet(collection, 'level1[0]level2');

// or

_.deepIn(collection, 'foo.bar["baz"][0].qux');
```
technically the regex doesn't care if it's single-quote or double-quote, so this also works if you prefer double quotes:

```javascript
_.deepIn(obj, "[\"foo\"].bar");
```