Merge pull request #40 from Ubiquitatis/master

Adds a check in CMake for the now required iconv library.
Merge branch 'master' of https://github.com/evemuproject/evemu_incursion
Fixed static bubble creation to only be done for stargates, asteroid belts, and stations.  Dynamic system entities should have their own bubbles created automatically when a system loads, but this needs to be tested by travelling somewhere to create a new bubble, dropping something that will stay in space, then closing the server and restarting it.  Also, disabled the evemu login message from coming up.  Almost all changes in this commit are additions of sLog.Debug() printouts of bubble information which will be removed once bubble work is completed for now.
Finally got bubble management reworked to properly look 'ahead' in distance when coming out of warp so as to add the warping ship into the correct bubble if there is one existing at the destination and the destination coordinates are inside that bubble.  There might still be some weirdness when warping to planets, but this will get worked out sooner or later.  Next commit or so will have some cleanup of the implementation that fixed this issue.  It should now be either very infrequent or never happen where the ship coming out of warp is placed into a new bubble that is located mostly inside an existing bubble.  This seems to have been largely fixed.
Added some debug log message printing to DestinyManager class functions AlignTo(), GoToDirection() and Follow() to inspect ship velocity and vector direction during space operations.
Fixed docking such that it orients ship and vectors to the docking point if outside docking perimeter and starts monitoring position until within 500m of the station and then auto docks when within.  The auto docking monitoring is disabled whenever the player sets a new course via Align, GoTo, Warp, etc or Stops the ship.  Also, this fix as of now is a bit non-optimal, simply because it implements knowledge of how to calculate the station docking point and orientation in various locations.  This stuff should all be located within either the Station class or StationEntity class.  That effort will be done later.  One interesting note though, is that if I did not put a call to DestinyManager::Stop() in the DestinyManager::AttemptDockOperation() function AFTER determining that the ship was within the docking perimeter, something caused a hard crash in the server code and I don't know what it is.  Perhaps it's because the Destiny object gets deleted or the reference to the ship gets deleted or something, but it happens during the docking procedure such that something in Destiny or somewhere is accessing something that does not exist because a heap corruption error is reported.  For now, the call to Stop() is in there to avoid this, but it should be investigated so we can make the server code more robust and not so sensitive to existence/non-existence of objects, etc etc.
Fixed hard-coded max warp speed of ships of 3.0AU/s by correctly identifying the last parameter in the DoDestiny_WarpTo xmlp packet as being the warp speed of the ship in AU/s multiplied by 10.  Now, the client's warp speed matches what the server is using to move the ship through warp.
Fixed return NULL in ModuleFactory constructor for Armor Reinforcer group.  Fixed reports of sql query errors in ModuleDB.  Fixed crash due to call.client->byname.find(qty) having no 'second' in the pair, because it was a PyNone in the InventoryBound::Handle_Add() call, which happens when unfitting a module.  Added a to-be implemented function to Ship class, FindAvailableModuleSlot() that right now returns flagAutoFit, but will return the next highest available slot flag for the slot bank appropriate for the module InventoryItemRef passed into it.  This is needed whenever the player drags a module into the middle of the fitting window telling the client to sent the flagAutoFit to the server letting it know that it's okay that the server automatically picks an appropriate slot for the module, if one is available.  Fixed crashes in ModuleContainer::GetModule() that searches for the module with itemID equal to the parameter passed into the function because it was NOT checking for elements of the arrays being NULL before dereferencing them to inspect their InventoryItemRef.  Folks, THIS IS JUST THE BEGINNING!  ;)   - Aknor
Added two fields to dgmEffectsInfo table to indicate in what module state an effect is applied (effectApplied) such as online or activate, and to what target an effect is applied (effectAppliedTo), such as 'self' meaning the module itself, the ship to which it is fitted, or a targetted entity.  Fixed various crashes.  Implemented full loading of ModuleContainer contents of GenericModule pointers when ship objects are created on login.  Corrected alphabetic case of characters when checking effect names such as 'online' to our internal ModuleCommand enums.
Fixed a ton of potential crash points in ModuleEffects.h single-line methods.  Adjusted Online, Offline, Fit and Unfit methods in Module.h.  Corrected Notify_OnGodmaShipEffect packet in DogmaIM.xmlp according to Incursion packet logs.  Corrected use of Notify_OnGodmaShipEffect packet in InventoryItem::SetOnline().  Adjusted Online, Offline, Fit and Unfit methods in ModuleManager.cpp.  Put simply, you can not Fit, Unfit, Online, and Online one kind of Pasive module: 1600mm Rolled Tungsten Plates I. More to follow, and they dont modify shp attriutes yet.
Populated return values for all Passive Module groups in ModuleFactory.h.  Added enum definitions for the two new fields in the dgmEffectsInfo table ahead of implementing additional code in ModuleEffects classes to make use of them.  Cleaned up ModuleManager's constructor a bit so as to not be calling ~RefPtr() methods in the for loops that load modules from the ship's inventory.
Forgot to compile before last commit.  There were errors in those enums, which have now been corrected.
Refactored many of the classes Luck originally wrote for the new Module Manager to split out the implementation code from the header files because I anticipate that they will grow in size as the Module Manager and associated classes start filling out with features.  Many compile errors were fixed and files added to the CMakeLists.txt for the eve-server project to properly build the solution to include the new cpp files.
Added methods to save Modules' data and attribute information to the Database.  Added calls to this new Modules save-off to the Ship class' SaveShip() method.  Created a new SaveAllToDatabase() call to the Client class that will, with ONE call, save all Character info and attributes and skill queue, save all Ship info and attributes, and save all info and attributes of all fitted modules.
Disabled auto-docking feature since it was mysteriously leading to a heap corruption crash for some unknown reason.  I have no idea how to fix those nor how to track them down.  Re-enabled saving of modules' item attributes, however, it still has not been tested to see if online attribute is saved such that modules offlined before save will then be restored that way on server restart.  That's the next thing to test ;)
Added new sql dump file for the new dgmEffectsInfo table.  Only has two rows in it for testing 1600mm Rolled Tungsten Plates I module for now.  We've got A LOT more work to do to fill this table out for all module groups.
Enabled saving of all Character, ship, and module information on docking, but only works for manual docking.
Resolved to not continue trying to fix the fact that offlined modules when logging out become onlined when next you login.  Cleaned up work to save all info for character, ship, and modules.
Fixed conditionals in Ship::ValidateAddItem() so as to include checking for flag to be lowest and highest slot numbers for each module bank in order to then call skill, capacity, and other checking functions.  Also fixed the row2.GetInt() calls for the dgmEffectsInfo table retrieval function MEffect::Populate()
Implemented check for occupied slot and return error to client when occupied, thus refusing to fit module.