Fixed bug in decodeHttpAuth() causing colons in a password (and everything afterwards) to be swallowed. Note: RFC 2617 explicitely allows colons in passwords, just not in usernames.
synchronized various methods to avoid deadlock

one of our apps was stuck in a deadlock in ResourceProperties.size(),
see excerpt of the stack trace below. this fix synchronizes various overriding
methods since they are synchronized in Hashtable as well.

removed superfluous toString method too.

```
"app-230":
        at java.util.Hashtable.size(Hashtable.java:206)
        - waiting to lock <0xa13f8548> (a helma.util.ResourceProperties)
        at helma.util.ResourceProperties.size(ResourceProperties.java:529)
        at java.util.Hashtable.equals(Hashtable.java:742)
        - locked <0xa1065708> (a helma.util.ResourceProperties)
        at helma.objectmodel.db.DbSource.equals(DbSource.java:292)
        ...
"app-439":
        at java.util.Hashtable.size(Hashtable.java:206)
        - waiting to lock <0xa1065708> (a helma.util.ResourceProperties)
        at helma.util.ResourceProperties.size(ResourceProperties.java:529)
        at java.util.Hashtable.equals(Hashtable.java:742)
        - locked <0xa13f8548> (a helma.util.ResourceProperties)
        at helma.objectmodel.db.DbSource.equals(DbSource.java:292)
        ...
```
new interface method ObjectCache.getStatistics

the statistics of a cache instance for an application can be retrieved
by calling `app.__app__.getCacheStatistics()`. That's not very useful for the 
default `ObjectCache` but essential for looking into what more complex cache
impls like `SwarmCache` do

we could remove all the other cache statistics methods like `getCacheUsage` 
and output that info in the map returned by `getCacheStatistics()`

i had to bump java to 1.5 for the generics.. if that's a problem we can
remove the generics