Various fixes and improvements in audio effects implementation

Effect API:
- Use different definitions for audio device, channels, formats... in AudioSystem and EffectApi:
  Removed media/AudioCommon.h file created for initial version of EffectApi
- Indicate audio session and output ID to effect library when calling EffectCreate(). Session ID can be useful to optimize
the implementation of effect chains in the same audio session. Output ID can be used for effects implemented in audio hardware.
- Renamed EffectQueryNext() function to EffectQueryEffect() and changed operating mode:
  now an index is passed for the queried effect instead of implicitly querying the next one.
- Added CPU load and memory usage indication in effects descriptor
- Added flags and commands to indicate changes in audio mode (ring tone, in call...) to effect engine
- Added flag to indicate hardware accelerated effect implementation.
- Renamed EffectFactoryApi.h to EffectsFactoryApi.h for consistency with EffectsFactory.c/h

Effect libraries:
- Reflected changes in Effect API
- Several fixes in reverb implementation
- Added build option TEST_EFFECT_LIBRARIES in makefile to prepare integration of actual effect library.
- Replaced pointer by integer identifier for library handle returned by effects factory

Audio effect framework:
- Added support for audio session -1 in preparation of output stage effects configuration.
- Reflected changes in Effect API
- Removed volume ramp up/down when effect is inserted/removed: this has to be taken care of by effect engines.
- Added some overflow verification on indexes used for deferred parameter updates via shared memory
- Added hardcoded CPU and memory limit check when creating a new effect instance

Change-Id: I43fee5182ee201384ea3479af6d0acb95092901d
diff --git a/include/media/AudioEffect.h b/include/media/AudioEffect.h
index 2bdba2d..66670f3 100644
--- a/include/media/AudioEffect.h
+++ b/include/media/AudioEffect.h
@@ -93,14 +93,14 @@
 
     /*
      * Returns the number of effects available. This method together
-     * with EffectQueryNext() is used to enumerate all effects:
+     * with queryEffect() is used to enumerate all effects:
      * The enumeration sequence is:
-     *      QueryNumberEffects(&num_effects);
-     *      while (num_effects--)
-     *          QueryNextEffect();
+     *      queryNumberEffects(&num_effects);
+     *      for (i = 0; i < num_effects; i++)
+     *          queryEffect(i,...);
      *
      * Parameters:
-     *      pNumEffects:    address where the number of effects should be returned.
+     *      numEffects:    address where the number of effects should be returned.
      *
      * Returned status (from utils/Errors.h) can be:
      *      NO_ERROR   successful operation.
@@ -114,24 +114,24 @@
     static status_t queryNumberEffects(uint32_t *numEffects);
 
     /*
-     * Returns number effect descriptor during effect
+     * Returns an effect descriptor during effect
      * enumeration.
      *
      * Parameters:
-     *      pDescriptor:    address where the effect descriptor should be returned.
+     *      index:      index of the queried effect.
+     *      descriptor: address where the effect descriptor should be returned.
      *
      * Returned status (from utils/Errors.h) can be:
      *      NO_ERROR        successful operation.
-     *      NAME_NOT_FOUND  no more effect available
      *      PERMISSION_DENIED could not get AudioFlinger interface
      *      NO_INIT         effect library failed to initialize
-     *      BAD_VALUE       invalid descriptor pointer
+     *      BAD_VALUE       invalid descriptor pointer or index
      *      INVALID_OPERATION  effect list has changed since last execution of queryNumberEffects()
      *
      * Returned value
      *   *descriptor:     updated with effect descriptor
      */
-    static status_t queryNextEffect(effect_descriptor_t *descriptor);
+    static status_t queryEffect(uint32_t index, effect_descriptor_t *descriptor);
 
 
     /*