Web-Loaded Subclasses for Equipment and Configuration
Merge remote-tracking branch 'origin/conifg-overhaul' into
conifg-overhaul

Conflicts:
	CmiApp/src/ch/epfl/cmiapp/core/WebLoadedConfiguration.java
Bug fixes: manifeset file and string comparison
Merge branch 'conifg-overhaul' into unittest
Added test for configuration validation
Fixed getEnumAttr in XmlExtractor
Added groups and requirements to cmitools.xml
Merge branch 'conifg-overhaul' into unittest
Config Validation Test seems to work now
Added groups and requirements to cmitools.xml
Getting configs and reservations to work again

Main issue: url in CmiReservation was still based on cmisrv1 instead
cmisrvm1, which caused booking to not work and crash the app. Corrected
code in CmiLoader accordingly.

CmiReservation: changed code in toggleBooking. Now calls insertSlot on
itself instead of directly adding slot to internal list. This way, the
private eqiupment field is always set. 

XmlLoadedEquipment: added missing extraction of  description field to
xml-equipment loading. 

ConfigDialogFragment: Added onSaveInstanceState etc. so that rotating
the phone doesn't make you loose all the settings and more importantly
the reference to the Equipment object. Callbacks now routed via the
activity according to standard android app design. 

CmiFragmentActivity: Now implements ConfigDialog.Callbacks, which is not
ideal but necessary to conform with changes mentioned above. 

Configuration: getsDisplayed now returns the correct value, display !=
0; Had to revert getOptions() to return the actual references and not
copies to make code in DialogFragment work again. 

ScheduleMasterFragment: added code to read configuration back from
SharedPreferences in onCreate;

ScheduleManager: minor changes.

classpath: added source for jsoup debugging
VPN settings shortcut menu item
Deactivated ACRA
Changes to equipment list: Introduced AccessList and caching.

EquipmentManager:
now has an AcessList containing machIds, an Inventory of accessible
Equipment, and methods for reading and writing the AccessList to the
sharedPreferences.

EquipmentListFragment:
now owns a EquipmentManager instance. It also  displays a toast when
loading the web page failed, but displays the equipment list anyway.

Inventory: 
added 'contains()' methods for machId and equipment.

Equipment: 
now implements Comparable

EqptListAdapter: 
now uses EquipmentManager and caching functionality. y.
Fixed bug - List being cleared after cmi page loaded

EqptListAdapter: 
Rewrote most of onParseData.
Configuration for DP650 

This tools also required the new settings grouping feature.
Added check if config parameters are up to date. 

CmiSchedule:
Added methods for comparing the xml loaded equipment config data with
web parsed settings and options. If these are not compatible, the
equipment will be locked for reservations.

ScheduleManager:
Checks if equipment is locked after web loading and parsing has
finished, and blocks attemts to make reservations if necessary.

Configuration:
Can now be instantiated without a valid reference to an equipment. 

Equipment:
Added lock(); and isLocked(); methods.
Merge branch 'unittest'

Conflicts:
	CmiApp/res/raw/cmitools.xml
WebLoadedEquipment and Configuration cross checking

WebLoadedEquipment 
is now fully functional, including Configuration loading. 
Data can be extracted from a reserv.php file. 
Equipment data is limited to machId, Zone, Name and Supplement fields
and is taken from the <option> element marked with a 'selected'
attribute.
Configuration is loaded from "Set up your configuration" form. 

WebLoadedConfiguration 
is used internally by WebLoadedEquipment to load the Configuration data
from the same web page. 

Equipment
Just added a comment. 

EquipmentManager
Added the method checkConfigParamsCompatible() 
Will iterate over the options of a test Equipment (typically the xml
loaded one) and for each option, check if the same option is present
in the reference Equipment (typically the web loaded one). This way it
can be verified if the xml data is still up to date. 

Configuration 
Severe(!) errors found in findOption() hasOption() and getOption()
methods: strings were compared with == operator instead of using
equals().
Added Tests for new WebLoadedEquipment. 

Several errors were corrected in cmitools.xml due to testing with new
testConfigUpToDate() functionality in EquipmentManager.