fixed stupid bugs
added some fixes
fixed bad oops due to API inconsistency (gfp,size) instead of (size,gfp)
in dma_fragment_allocate and the corresponding bad usage in bcm_merged_fragment alloc.

also made the default size of the caches configurable via a define - making
some assumptions about typical "pattern"...

The current settings should be sufficient to schedule:
* 3 single transfers
* 1 single transfer + 1 dual transfer
* 1 tripple transfer
without having to allocate any memory...