Faster startup and mass lookups, returns real booleans

Hi there. I wanted to use the browscap data in a program that processes a HTTP log, so to parse lots of strings, but the original version took too much time. Fortunately I could speed things up.  

This version is major rewrite, giving 2 speed improvements:

1. Not all properties from parents are copied to every browser configuration, but the parent-child relationship is used. This reduces the time to parse the .ini file. In `getBrowser`, properties are retrieved from the matching browser, then going up the parent tree more generic properties are filled.

2. Results of `getBrowser` calls are stored. Subsequent calls for the same string are retrieved from this cache, giving a faster response. 

One feature change, properties with string values 'true' and 'false' are converted to boolean values.

I also changed the code formatting to my preferences, hope you don't mind too much.

kind regards,
rob schlüter