Cache, Connection timeout, Bugfixes

With this merge there will be a **cache** integrated. It can be used through configuration (see Readme).
**Connection timeout** for resolving external resources is settable via config.
Following bugfixes were made:
- removed system.exit in case resolving resource fails
- validate filter to prevent infinit loop in case of open brackets like: "data(asd,asd2()"
- empty arrays are returned as empty arrays instead of nil

Caching improved performance more significant on a request with 90 calls to external resources. Calls following the first call are faster up to 10 times compared. Cache access is synchronised and therefore safe to use from different goroutines.

**Note**: Parallelisation has been added and leaded to performance improve of 30% with 90 calls to external resources, but it added additional complexity and was not clean, therefore it was removed again.