Changes from 3.3-3 to 3.4.0alpha1

*Kernel:
- Added user specified template values.
- Added PathPrefix functionality to be able to remove selected parts of the url in the url alias
- Added storeData() function for eZContentObjectAttribute, this function is safe for datatypes to call (unlike store() ).
  Merged in from 3.3 stable (Rev. 4817)
- Added error message when trying to store empty required xml text.
  http://ez.no/developer/ez_publish_3/bug_reports/missing_error_message_for_empty_required_ezxmltext_attribute
- Added wildcard search to eZSearchPlugin. This feature is disabled by
  default, but can be enabled in site.ini->SearchSettings->EnableWildcard.
- Added edit button link for class view.
- Added support for fetching a class by the identifier
  (fetchByIdentifier) eZContentClass.
- Added support for class identifiers in addition to the existing class ids in
  content/action. Use ClassIdentifier instead of ClassID to get
  this functionality.
- New fetch function in content module for checking access types on an object
  called access.
- Added support for the new variable system in the URLs for google.tpl, that
  means (offset)/10 instead of offset/10, this also works with nice urls.
- Added class_identifier as design/override key to content/view.
- Added data_map support for eZContentClass, this means that all attributes are returned as an
  associative array with the identifier as the key.
- Added support for sending the class identifier as a string to the content/class fetch function.
- Added content/pdf for on the fly generation of PDF based on current node. Utilizes normal content caching.
- Added setting for adjusting default value of ezdatetime datatype based on current date
- Added ezcontentobject_tree.modified_subnode to eZContentObjectTreeNode to make fetches of last 
  modified subtree faster.
- Added MD5 check of distribution files. Both scripts and GUI for checking files added.
- Added function to view/edit ini settings in admin interface.
- Added configureable object 'common ini settings' under admin setup.
- Added support for overriding on class_identifier on templates included in node_view_gui ( e.g. embedded objects ).
- Made ezdesign and ezimage operator check for design resources in extensions
- Made the treemenu operator sort by the current node's sort array
  instead of always using priority.
- Rewritten user permissions checking to minimize overhead.
- Added Role assignment to user based on limited criteria.
- Change loading of datatypes, they are now loaded on demand only.

*Setup
- Added admin user creation during setup.

*Unit testing:
- Created a new system for doing automated unit testing. It has a basic framework
  and a plugin based structure to handle the test cases.

*DataType:
- New function hasObjectAttributeContent (attribute.has_content in template)
  which returns true if the attribute is to be considered to have any content.
- Fixed a define typo in ezurltype.php
- eZBinaryFile now uses eZMimeType for mime type handling.

eZObjectRelation:
- Added support for choosing relation in a dropdown (combobox) where items
  are taken from a specific folder (list or tree)
- Added support for text field when having dropdown, the text field will allow
  for fuzzy matches with the names in the dropdown.

*Libraries:
- Fixed case bug in the Timeout variable in eZSOAPClient.

eZ ini:
- Optimized storing of .ini file cache to use about 1/3 less memory when loading cached .ini files

eZ template:
- Implemented template compilation for almost all template operators and functions.
- Added automated unit tests for eztemplate functionality.
- Added the option to turn off all caching and compilation when fetching templates.
  This is currently used to test if template compilation works as expected.
- Added reset() and resetElements() function which calls a reset function
  on all functions and operators. This ensures that the run-once function
  can be reused for automated testing.
- Two new element types (array and boolean) created to help in
  template compilation optimization.
- The behaviour of the template operators sum, sub, inc, dec, div,
  mod, mul, max, min, abs, ceil, floor, round, int, float, count and roman
  has changed. Objects and arrays are no longer been given special
  treatment (these features were never used anyway).
  Now all parameters are treated as scalar values.
- The template operators sum and sub no longer accepts an array as
  input value. A new operator array_sum was created to handle this
  case (sub is no longer support for arrays). Code depending on this
  must be changed.
- The switch function no longer requires a default case, and has an additional
  argument 'var' which controls the naming of the variable which contains the
  value of the match (which was formerly always '$match').

eZ PHP creator:
- New creation type 'define' which creates a define() expression.
  Takes the name, value and optionally if it should be case sensitive.
- Added optional parameter support to include, comment and code piece.
- Added support for spacing to include, comment, code piece, variable,
  variable unset, method call and define. The spacing will be added
  before each line in the generated text.
- Added default value of 0 to the second parameter ($column) of variableText().
- Added new static function prependSpacing() which is used to prepend the
  proper spacing to a text block. 
- Added new function fetch() which renders all elements to a string and 
  returns it.
- Created new private function writeElements() which writes all elements
  to the text array, this function is now used in both store() and fetch().

*Bugs:
- Fixed several minor bugs with url prefix.
  http://ez.no/community/bug_reports/strange_behaviour_of_ezurl_using_pathprefix
- Fixed package/list bug.
  http://ez.no/community/bug_reports/fatal_error_package_list
- Fixed bug with .ini files http://ez.no/community/bug_reports/new_ezini_php_one_line_too_much_critical
- Fixed shorten bug
  http://ez.no/community/bug_reports/shorten_function_cuts_off_part_of_unicode_caracters_and_breaks_them
